类集

【arcpy】 | 要素类、图层、要素集的区别 要素类是。 阅读详情

主要介绍的内容:

1、类集的主要作用

2、Collection、List、Set接口的作用及相关的子类

3、Map的作用及相关子类

4、Object类的作用

5、掌握泛型在整个Java类集的作用

6、掌握属性文件的操作


一、类集设置的目的(重点哦)

类集: 一系列动态对象数组。

对象数组有哪些问题?普通的对象数组的最大问题在于数组中的元素个数是固定的,不能动态扩充大小,所以最早的时候可以通过链表实现一个动态对象数组。但是这样做毕竟太复杂了,所以在Java中为了方便用户操作各个数据结构,所以引入了类集的概念,有时候就可以把类集成为JAVA对数据结构的实现。

在整个类集中,这个概念是从JDK1.2(Java2)之后才正式引入的,最早也提供了很多的操作类,但是并没有完整的提出类集的完整概念。

类集中最大的几个操作接口: Collection、Map、Iterator 这三个接口为以后要使用的最重点的接口。

所有的类集操作的接口或类都在java.util包中


Java类集结构图:




二、Collection接口(重点)

Collection接口是在整个Java类集中保存单值的最大操作父类接口,里面每次操作的时候都只能保存一个对象数据。

此接口定义在java.ui包中。

此接口定义如下:

public interface Collection<E> extends Iterable<E>

此接口使用了泛型技术,在JDK1.5之后为了使类集操作的更加安全,所以引入了泛型。

此接口的常用方法如下所示。


No.方法名称类型描述
1public boolean add(E e)   普通                    向集合中插入一个元素           
2        public boolean addAll(Collection<? extends E> c)           普通   向集合中插入一组元素
3public void clear()普通清空集合中的元素
4public boolean contains(Object o)普通查找一个元素是否存在
5public boolean containsAll(Collection<?> c)普通查找一组元素是否存在
6public boolean isEmpty普通判断集合是否为空
7public Iterator<E> iterator()普通为Iterator接口实例化
8public  boolean remove(Object o)普通从集合中删除一个对象
9 boolean removeAll(Collection<?> c)普通从集合中删除一组对象
10boolean retainAll(Collection<?> c)普通判断是否没有指定的集合
11public int size()普通求出集合中元素的个数
12public Object[ ] toArray()  普通以对象数组的形式返回集合中的全部内容
13<T> T[ ] toArray(T[ ] a)普通指定操作的泛型类型,并把内容返回
14public boolean equals(Object o)普通从Object类中覆写而来
15public int hashCode()普通从Object类中覆写而来

本接口中一共定义了15个方法,那么此接口的全部子类或子接口就将全部继承以上接口中的方法。

但是,在开发中不会直接使用Collection接口。而使用器操作的子接口:List、Set。

之所以有这样的明文规定,也是在JDK1.2之后才有的。一开始在EJB中的最早模型中全部都是使用Collection操作的,所以很早之前开发代码都是以Collection为准,但是后来为了更加清楚的区分,集合中是否允许有重复元素所以SUN在其开源项目——PetShop(宠物商店)中就开始推广List和Set的使用。


三、List接口(重点)


在整个集合中List是Collection的子接口,里面所有的内容都是允许重复的。

List子接口的定义:

public interface List<E> extends Collection<E>

此接口上依然使用了泛型技术。此接口对于Collection接口来讲有如下的扩充方法:

No.1     方法名称         类型                               描述                                    
1public void add(int index, E elem ent)普通在指定位置处增加元素
2     boolean addAll(int index, Collection<? extends E> c)    普通在指定位置处增加一组元素
3public E get(int index)普通根据索引位置取出每一个元素
4public  int indexOf(Object o)普通根据对象查找指定位置,找不到返回-1
5public int lastIndexOf(Object o)普通从后面向前查找位置,找不到返回-1
6public ListIterator<E> listIterator()普通返回ListIterator接口的实例
7public ListIterator<E> listIterator(int index)普通      返回从指定位置的ListIterator接口的实例       
8public E remove(int index)普通删除指定位置的内容
9public E set(int index,E elem ent)普通修改指定指定位置的内容
10List<E> subList(int fromIndex, int toIndex)普通返回子子集合


四、新的子类:ArrayList (重点)

ArrayList是List接口的子类,此类的定义如下:

public class ArrayList<E> extends AbstractList<E> implements List<E>,RandomAccess,Cloneable,Serializable

   此类继承了 AbstractList类。AbstractList是List接口的子类。AbstractList是个抽象类,适配器设计模式。

package 类集;

import java.util.ArrayList;
import java.util.List;

public class ArrayListDemo {
	public static void main(String args[]){
		//实例化List对象,并且指定泛型类型
		List<String> all = new ArrayList<String>();
		//增加内容,此方法从Collection接口继承而来
		all.add("hello");
		//增加内容,此方法是List接口单独定义的
		all.add(0, "LXH");
		//增加内容,此方法是从Collection接口继承而来的
		all.add("world");
		all.add("你好");
		all.add("世界");
		//打印all对象调用toString()方法
		System.out.println(all);
		//根据索引删除内容,此方法是List接口单独定义的
		all.remove(0);
		System.out.println(all);
		// 删除指定的对象
		all.remove("world");
		System.out.println(all);
		
		System.out.print("集合中的内容是:");
		for(String str:all){
			System.out.print(str+"、");
		}
		
	}
	
}

//结果是:
//[LXH, hello, world, 你好, 世界]
//[hello, world, 你好, 世界]
//[hello, 你好, 世界]
//集合中的内容是:hello、你好、世界、

五、旧的子类:Vector(重点)

与ArrayList一样,Vector本身也属于List接口的子类,此类的定义如下:

public class Vector<E> extends AbstractList<E> implement List<E>,RandomAccess,Cloneable,Serializable

此类与ArrayList类一样,都是AbstractList的子类。所以,此时的操作只是List接口的子类就按照List进行操作。

package 类集;

import java.util.List;
import java.util.Vector;

public class VectorDemo {
	public static void main(String agrs[]) {
		// 实例化List对象,并且指定泛型类型
		List<String> all = new Vector<>();
		// 增加内容,此方法从Collection接口继承而来
		all.add("hello");
		// 增加内容,此方法是List接口单独定义的
		all.add(0, "LXH");
		// 增加内容,此方法是从Collection接口继承而来
		all.add("world");
		// 根据索引删除内容,此方法是List接口单独定义的
		all.remove(1);
		// 删除指定对象
		all.remove("world");
		System.out.print("集合中的内容是:");
		System.out.print("集合中的内容是:");
		// size()方法从Collection接口继承而来
		for (int x = 0; x < all.size(); x++) { 
			// 此方法是List接口单独定义的
			System.out.print(all.get(x) + "、"); 

		}
	}
}





ArcGIS Engine检索要素集、要素类和要素 /// /// 获取所有SDE要素集 /// /// public static List GetAllFeatureClass(IWorkspace workspace) { IEnumDataset dataset= workspace.get_Datasets(esriDataset 阅读详情

相关推荐

基于深度学习的UWB门禁检测

针对基于UWB技术智能门禁管理系统,由于测距误差或非视距原因导致门禁产生不合理动作的现象。分析如何采用基于深度学习的方法,通过对TWR测距数据、TWR监听数据、到达角度差(PDOA)、信道脉冲响应(CIR)等数据维度进行深度学习,利用 TensorFlow建立相应的推导模型,对卡片姿态进行更加精准可靠的检测,从而更好完成闸机开合控制。

tenth_quadrant的博客 2026

认识类集

认识类集----类集概述 所谓类集,就是动态的对象数组,不必受到对象数组长度的限制,可以使开发人员很好使用操作一组对象增删改查的一种框架。 类集的主要特性: 这种框架是高性能的,对基本类集(动态数组、链接表、树和散列表)的实现是高效率的。所以一般很少需要人工去对这些"数据引擎"编写代码。 框架必须允许不同类型的类集以相同的方式和高度互操作的方式工作。 类集必须是容易扩展和修改的。为了实现这一目标,类集框架被设计成包含一组标准接口。 类集的主要接口 序号 接口 描述 1 Collectio

西小庄村高伟 的博客 283

告别倍福开发板:手把手教你用SSC工具为STM32生成EtherCAT从站代码

本文详细介绍了如何使用SSC工具为STM32生成EtherCAT从站代码,帮助开发者在不依赖倍福开发板的情况下实现高效的工业以太网通信。通过SSC工具的配置、XML文件设计、代码移植与硬件适配等步骤,开发者可以轻松构建自定义的EtherCAT通信系统,提升工业自动化项目的灵活性和效率。

weixin_33925615的博客 410

Java类集框架——认识类集、Collection接口

在Java中必须掌握的知识点(用于开发的) 1、面向对象 2、Java的类集 3、Java IO 4、JDBC 本次学习目标 掌握Java设置类集框架的目的 掌握类集中的各个主要接口 掌握Collection接口的作用 类集的作用 类集实际上就是一个动态的对象数组,与一般的对象数组不同,类集中的内容可以任意扩充。 类集的特征: 这种框架是高性能的。 框架必须允许不

1710

S32K344开发环境搭建全攻略:S32DS 3.5.12与RTD 3.0.0实战指南

在嵌入式开发中,集成开发环境(IDE)与实时驱动(RTD)的协同配置是项目启动的关键。S32DS作为NXP官方IDE,结合RTD包,为S32K3系列提供底层驱动支持。正确安装与路径配置能确保编译、调试与烧录流程顺畅,避免常见错误。该环境适用于汽车电子、工业控制等场景,如车身域控、BMS。本文基于S32K344芯片,详细记录从软件下载到调试的完整过程,帮助开发者快速搭建稳定开发环境。

weixin_42713608的博客 211

tkinter表格进阶:5分钟实现CSV数据可视化编辑界面(含右键菜单配置)

本文详细介绍了如何使用Python的tkintertable库快速构建CSV数据可视化编辑界面。通过导入导出CSV数据、深度定制右键菜单(如复制、插入行、删除行)以及实现单元格验证等进阶功能,开发者能在5分钟内创建一个可嵌入自动化流程的专业级桌面数据编辑工具,显著提升数据处理效率。

930

Java-类集概述

Java-类集概述类集设置的目的补充链表链表 分类:二叉树 类集设置的目的 对象数组存在一些问题,其中最大的问题在于数组中的元素个数是固定的,不能动态的扩充大大小,最早的时候可以通过链表实现一个动态对象数组。但是操作麻烦,所以java为方便操作各个数据结构,引入了类集的概念 有时候可以把类集称为java对数据结构的实现 类集中有最大的几个操作接口:Collection、Map、Iterator(迭代器) 补充 抽象数据类型:表示数学中抽象出来的一些操作的集合 内存结构:内存中的结构,如:struct、

paokuhuashang的博客 368

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】5.2 数据分组与透视(CUBE/ROLLUP/GROUPING SETS)

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】5.2 数据分组与透视(CUBE/ROLLUP/GROUPING SETS)

kngines 1834

java类框架,java:类集框架

类集框架:jdk提供的一系列类和接口,位于java.util包当中,主要用于存储和管理对象,主要分为三大类:集合、列表和映射。集合Set:用于存储一系列对象的集合。无序、不允许重复元素。列表List:用来存储有顺序的一组数据的集合。有序映射Map:以键值对的方式进行数据存储的集合。类集框架主体结构:主要方法:add、clear、isEmpty、remove、sizeArrayList继承关系:It...

weixin_30995429的博客 196

openmediavault(OMV) (1)安装部署

EXT3(Third Extended File System): EXT3 是 Linux 中广泛使用的日志文件系统,是 EXT2 文件系统的升级版本。这里可以根据自己的需求进行设置,目前只设置了自动登出为1天,为方便后续配置使用,其他设置可根据自己的具体需求进行设置。通过cd 命令进入到我们的raid存储中,通过ls发现里面没有任何的数据,因为我们的raid存储中还未创建任何数据。我的系统要安装在100G的磁盘上,故选择100G的磁盘,实际可以根据具体情况选择。

Monster✺◟(∗❛ัᴗ❛ั∗)◞✺的博客 2168

OPC通信从入门到精通_1_OPC基础知识及简单C#程序编写(OPCDA,OPCUA简介;OPC通信数据流框架图;C#程序编写)

ModbusTCP通信是采用直接方式进行通信,用OPC的方式如何去做呢?PLC作为ModbusTCP服务器,用KepServer作为ModbusTCP客户端,同时作为OPC服务器,PC作为OPC客户端新建项目,加载dll库(利用COM技术写的)添加引用,查看到其中包含了众多方法其中OPCGroups继承于IOPCGroups接口。

分享学习成长历程,Winter is coming! 1万+

Java之路:Java类集框架

一、认识类集框架 二、类集接口 三、Collection——单值保存的最大父类接口 四、Collection接口的具体实现类 五、允许重复的子接口——List 1、ArrayList类 2、LinkedList类 3、Vector类 六、数组操作类——Arrays 七、比较器 1、Comparable接口 2、挽救的比较器接口——Comparator Java的类集框架可以使程序...

星云999的博客 666

12、多端神经形态晶体管:原理、应用与算法探索

本文综述了多端神经形态晶体管的原理、应用与算法探索。从神经元MOS晶体管的发展到基于电解质栅极晶体管(EGT)的新型器件设计,系统阐述了其在低电压、多功能逻辑运算和突触行为模拟方面的优势。重点介绍了其在化学生物传感器(如多巴胺和pH检测)中的高灵敏度应用,以及在树突整合、时空总和、动态逻辑和神经元算术等树突算法中的实现。文章还总结了该类器件在神经形态计算、智能传感等领域的广阔前景,并分析了当前面临的材料工艺、理论建模与系统集成挑战,展望了未来发展方向。

delta的博客 143

java类集

TreeMap(按照key对数据进行排序,如果是自己定义的类就必须实现Comparable<>接口)TreeSet集合可以对元素进行自动排序(二叉树排序),如果是自定义的类对象且有比较能力,需要定义。HashSet集合采用散列存储(哈希算法就是计算散列存储位置的一种算法),所有是无序的重复的只会。1.为集合添加元素: Collections.addAll(集合,"内容",...);//返回1是从小到大,返回-1是从大到小。Set集合和list集合不同,list集合可以放入重复的对象,set不能。

2401_84906949的博客 476

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

认识类集、Collection 接口

在java 中必须掌握的知识点,会开发的: 1、面向对象 2、Java 的类集 3、Java IO 4、JDBC 1、掌握Java 设置类集框架的目的 2、掌握类集中的各个主要接口 3、掌握Collection 接口的作用 对象数组中包含一组对象,

韩世雷 程序员专栏 1682

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

java类集整理及例子

JAVA类集  类集的作用、Collection、Map、Iterator、ListIterator、List、Set、Enumeration、二叉树算法  JAVA SE的最重要四块知识:面向对象、类集、JAVA IO、数据库编程  2、知识点  1、IO操作   BufferedReader:一次性读取数据   PrintStream:打印流   字节流:InputStream、

liufengfengcoc的专栏 597

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java——类集

Java类集:数据结构、多线程——动态数组(当元素个数达到最大值时,动态增加容量)(解决数组长度固定问题) 泛型的产生就是为了类集 1、Java类集产生-Jdk1.2 java.util.* 动态数组:解决数组定长问题 2、Collection接口:单个对象保存的最顶层父接口 Collection接口以及其子接口,在每次进行数据操作时,只能够对单个对象进行处理 Iterab...

Sophiahaha的博客 330

Java类集学习(一)类集概述

类集概述 1、为什么使用类集? 如果要保存一组对象: a、对象数组,缺点数组长度有限制; b、链表,可以完成动态数组操作,全部由开发人员来做,比较麻烦; c、类集框架解决了上述难题,即类集就是一个动态的对象数组,对一些实现好的数据结构进行了包装,本身不受对象数组长度的限制。 2、类集框架的特性: a、高性能;b、允许不同类型的类集以相同的方式和高度互操作方式工作;c、容易扩展和修改

yels303的专栏 535

Java接口与类集

假设有以下一种情况:     图书馆大厦里可以放很多种的书     儿童书     电脑书      要求实现以下一种功能:     模拟图书大厦,图书大厦里可以存放多种书目,而且可以 进行添加操作、而且可以进行删除操作,还可以进行查询操作。 一个类集中可以加入多个对象,对于儿童书、电脑书     图书大厦 -> List -> 书的接口

积极奋斗的蜗牛 693

Java类集

在 Java 中,类集(Collection)是 Java 集合框架(Java Collections Framework, JCF)的核心部分,用于存储、管理和操作一组对象。├── HashMap (哈希表实现,线程不安全,允许 null 键/值)│ ├── HashSet (哈希表实现,线程不安全,允许 null)│ ├── TreeSet (红黑树实现,自动排序,不允许 null)├── TreeMap (红黑树实现,按键排序,不允许 null 键)

RZTTT的博客 891

Java类集框架

  类集实际上就属于动态对象数组,那么在实际的开发之中数组的概念出现的几率并不高,99%情况下使用的都是一维数组,并且99%的操作都只是进行简单的for循环处理,但是必须清楚数组本身有一个最大的缺陷:数组的长度是固定的 就是因为此问题的存在,所以才开发出了链表,但是对于链表的实现非常的困难,对于之前写的链表使用的是Object,那么就有一个潜在的问题了:如果设置的数据类型不一样,那么就会操作Cla...

weixin_30407099的博客 129

java的类集框架(小白篇)

java开发一定一定要懂类集框架,废话不多说先上一张图(网上扒的,解释得很详细) 下面是详细解释(自己的理解和学习感悟): 1、什么是类集框架? 类集、类集,顾名思义就是关于类的集合,之前我们学习了存储对象的数据结构主要是数组和链表,这里所说的类集主要针对的就是类对象数组的相关应用,用来描述java的数据结构。 2、数组和链表用得好好的,为什么要用类集框架实现对象数组的相关操作呢? (1)数组长...

weixin_42230348的博客 204

类集层次

自己理解的类集层次,不对地方请指出:

刘召 574
上一篇: 集合
下一篇: android设置图片填充样式
跳跳
博客等级 码龄15年 7粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值