java集合概述
来源:互联网 发布:淘宝关键词top100 编辑:程序博客网 时间:2024/06/06 09:25
java集合概述
前言:
- Java提供了集合类,用于负责保存、盛装其他数据,因此集合类也被称为容器类,集合类中只能保存对象(实际上是对象的引用)。
- Java集合大致可以分为Set、List、Queue和Map四种体系。其中Set代表无序,不可重复的集合;List代表有序、重复的集合;Map代表有映射关系的集合;Java5又增加了Queue体系集合,代表了一种队列集合实现。
- Java集合主要由俩个集合派生而出:Collection和Map接口
- 看下面这幅图,我们可以看出:Set集合类似于一个罐子,把一个对象添加到Set集合中时,Set集合无法记住添加这个元素的顺序,所以Set元素无法重复(否则系统无法识别此元素);List集合像一个数组,它可以记住每次添加元素的顺序、且List长度可以变化。Map集合也像一个罐子,只是它里面的每项数据都由俩个值组成。
(一)Collection接口
- Collection接口是List、Set和Queue接口的父接口,定义了如下方法:
- boolean add(Object o) :向集合中添加一个元素。
- boolean addAll(Collection c):把集合c里的所有元素添加到指定集合里。
- void clear() :清楚集合中所有元素,将集合长度变为0。
- boolean contains(Object o):返回集合里是否包含指定元素。
- boolean containAll(Collection c):返回集合里是否包含集合c的全部元素。
- boolean isEmpty():返回集合是否为空。
- boolean remove(Object o): 删除集合中指定元素o,若集合中包含了一个或多个元素时,该方法只删除第一个符合条件的元素。
- boolean removeAll(Collection c): 从集合中删除集合c里所包含的所有元素。
- int size():返回集合中的个数。
(二)Set接口
Set是一种不包括重复元素的Collection。它维持它自己的内部排序,所以随机访问没有任何意义。与List一样,它同样运行null的存在但是仅有一个。由于Set接口的特殊性,所有传入Set集合中的元素都必须不同,同时要注意任何可变对象,如果在对集合中元素进行操作时,导致e1.equals(e2)==true,则必定会产生某些问题。实现了Set接口的集合有:EnumSet、HashSet、TreeSet。
EnumSet
是枚举的专用Set。所有的元素都是枚举类型。
HashSet
HashSet堪称查询速度最快的集合,因为其内部是以HashCode来实现的。它内部元素的顺序是由哈希码来决定的,所以它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变,也就是说HashCode值不一定永远不变。
TreeSet
基于TreeMap,生成一个总是处于排序状态的set,内部以TreeMap来实现。它是使用元素的自然顺序对元素进行排序,或者根据创建Set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。
(三)List接口
- List接口为Collection直接接口。List所代表的是有序的,可以重复的Collection,集合中每一个元素都有其对应的顺序索引。List集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。
- 实现List接口的集合主要有:ArrayList,LinkedList,Vector,Stack。
(四)Map接口
- Map与List、Set接口不同,它是由一系列键值对组成的集合,提供了key到Value的映射。同时它也没有继承Collection。在Map中它保证了key与value之间的一一对应关系。
- 实现map的有:HashMap、TreeMap、HashTable、Properties、EnumMap。
0 0
- java集合概述
- Java集合概述
- java集合概述
- Java集合概述
- Java集合概述
- java 集合概述
- Java集合概述
- java集合框架概述
- java集合框架概述
- java集合概述
- 10001-Java集合--概述
- Java集合类概述
- JAVA集合框架概述
- java集合的概述
- Java集合概述
- Java集合概述
- Java集合类概述
- Java集合框架概述
- 滚动加载图片
- CDH安装SQOOP错误:Caused by: java.sql.SQLException: No suitable driver found for jdbc:derby:/var/lib/sqoo
- 第一次用结构体
- React-native 获取屏幕宽度/高度/像素
- Dijkstra(迪杰斯特拉)算法
- java集合概述
- POJ 3734 Blocks(矩阵快速幂)
- MD5加密的util
- Error: Your project contains C++ files but it is not using a supported native build system
- uva1352 Colored Cubes
- Codeforces 389D Fox and Minimal path【构造+二进制思维】好题!
- 百度地图在scrollview里面滑动冲突解决以及跳转到百度地图app的方法
- Linux字符设备驱动
- C——变量