一、集合框架的概述
1.集合、数组都是对多个数据进行存储操作的结构,简称 Java 容器。
说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库)
2.1 数组在存储多个数据方面的特点:
-
一旦初始化以后,其长度就确定了
-
数组一旦定义好,其元素的类型也就确定了,也就只能操作指定类型的数据了,比如:String[] arr;int[] arr1;Object[] arr2 多态性等
2.2 数组在存储多个数据方面的缺点:
- 一旦初始化以后,其长度就不可修改
- 数组中提供的方法非常有限,对于添加、删除、插入数据等操作,非常不便,同时效率不高
- 获取数组中实际元素的个数的需求,数组没有现成的属性或方法可用
- 数组存储的特点:有序、可重复。对于无序、不可重复的需求,不能满足
二、集合框架
- Collection 接口:单列集合,用来存储一个一个的对象
- List 接口:存储有序的、可重复的数据。 “动态”数组
- ArrayList、LinkedList、Vector
- set接口:存储无序的、不可重复的数据。
- HashSet、LinkedHashSet、TreeSet
- List 接口:存储有序的、可重复的数据。 “动态”数组
- Map 接口:双列集合,用来存储一对(key-value)一对的数据
- HashMap、LinkedMap、TreeMap、Hashtable、Properties
三、Collection接口中的方法
向 Collection 接口的实现类的对象中添加数据 obj 时,要求obj所在类要重写 equals()
- add(Object e):将元素 e 添加到集合中
- size():获取元素个数
- addAll(collection coll1):将 coll1 集合中的元素添加到当前的集合中
- clear():清空集合元素
- isEmpty():判断当前集合是否为空,是否有元素
- contains(Object obj):判断当前集合中是否包含 obj;在判断时会调用obj对象所在类的 equals()
- containsAll(Collection coll2):判断形参 coll2 中的所有元素是否都存在于当前集合中
- remove(Object obj):从当前集合中移除obj元素
- removeAll(Collection coll3):差集:从当前ji集合中移除 coll3 中所有的元素
- retainAll(Collection coll4):交集:获取当前集合和 coll1 集合的交集,仍然输出的是当前集合
- equals(Object obj):要考虑元素内容是否相同,list 接口类要额外考虑顺序,set 接口类是无序。
- hashCode():返回当前对象的哈希值
- toArray():集合 —> 数组
- Arrays.asList(["","",""]):数组 —> 集合
- iterator():返回 Iterator 接口的实例,用于遍历集合元素