单列集合框架结构
- JDK不提供此接口的任何直接实现,而是提供更具体的子接口(如:Set和List) 实现。
- 在 Java5 之前,Java 集合会丢失容器中所有对象的数据类型,把所有对象都当成 Object 类型处理;从 JDK 5.0 增加了泛型以后,Java集合可以记住容器中对象的数据类型。
Collection接口:单列集合,用来存储一个一个的对象
List接口:存储序的、可重复的数据。 —>“动态”数组
ArrayList、LinkedList、Vector
Set接口:存储无序的、不可重复的数据 —>高中讲的“集合”
HashSet、LinkedHashSet、TreeSet
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()
Object[] arr = coll.toArray();
for(int i = 0;i < arr.length;i++){
System.out.println(arr[i]);
}
数组 —->集合:调用Arrays类的静态方法asList(T … t)
List<String> list = Arrays.asList(new String[]{"AA", "BB", "CC"});
System.out.println(list);
List arr1 = Arrays.asList(new int[]{123, 456});//基本数据类型会将整个数组作为一个元素存储
System.out.println(arr1.size());//1
List arr2 = Arrays.asList(new Integer[]{123, 456});
System.out.println(arr2.size());//2