单列集合框架结构

  • JDK不提供此接口的任何直接实现,而是提供更具体的子接口(如:Set和List) 实现。
  • 在 Java5 之前,Java 集合会丢失容器中所有对象的数据类型,把所有对象都当成 Object 类型处理;从 JDK 5.0 增加了泛型以后,Java集合可以记住容器中对象的数据类型。

Collection接口:单列集合,用来存储一个一个的对象
List接口:存储序的、可重复的数据。 —>“动态”数组
ArrayList、LinkedList、Vector
Set接口:存储无序的、不可重复的数据 —>高中讲的“集合”
HashSet、LinkedHashSet、TreeSet
image.png


Collection 接口方法

添加
boolean add(Object obj)将元素obj添加到集合coll中
boolen addAll(Collection coll)将coll1集合中的元素添加到当前的集合中
获取有效元素的个数
int size()
清空集合
void clear()
是否是空集合
boolean isEmpty()
是否包含某个元素
boolean contains(Object obj):是通过元素的equals方法来判断是否是同一个对象
boolean containsAll(Collection c):也是调用元素的equals方法来比较的。拿两个集合的元素挨个比较。
删除
boolean remove(Object obj):通过元素的equals方法判断是否是要删除的那个元素。只会删除找到的第一个元素
boolean removeAll(Collection coll):取当前集合的差集 :即删除coll集合中共有的元素
取两个集合的交集
boolean retainAll(Collection c):把交集的结果存在当前集合中,不影响c
集合是否相等
boolean equals(Object obj):比较两个集合是否相同(若是比较的是List集合需要考虑集合内部元素顺序是否相同)
转成对象数组
Object[] toArray()
获取集合对象的哈希值
hashCode()
遍历
iterator():返回迭代器对象,用于集合遍历


Collection集合与数组间的转换

集合 —->数组:toArray()

  1. Object[] arr = coll.toArray();
  2. for(int i = 0;i < arr.length;i++){
  3. System.out.println(arr[i]);
  4. }

数组 —->集合:调用Arrays类的静态方法asList(T … t)

  1. List<String> list = Arrays.asList(new String[]{"AA", "BB", "CC"});
  2. System.out.println(list);
  3. List arr1 = Arrays.asList(new int[]{123, 456});//基本数据类型会将整个数组作为一个元素存储
  4. System.out.println(arr1.size());//1
  5. List arr2 = Arrays.asList(new Integer[]{123, 456});
  6. System.out.println(arr2.size());//2