Java Collection


java集合

集合是什么?

Java集合类存放在java.util包中,是一个用来存放对象的容器。
注意:
1. 集合只能存放对象。比如你存一个int型数据1放入集合中,其他它是自动转换为Integer类后存入的,Java中的每一种基本类型都有对应的引用类型。
2. 集合存放的是多个对象的引用,对象本身还是放在堆内存中。
3. 集合可以存放不同类型,数量不限的数据类型。


集合框架图


集合详解

  1. Iterator迭代器:Java集合的顶层接口(不包含Map系列的集合)

    • Object next():返回迭代器刚越过的元素的引用,返回值是Object,需要强制转换成自己需要的类型

    • boolean hasNext():判断容器内是否还有可以访问的元素。

    • void remove():删除迭代器刚越过的元素。

      Iterable中封装了Iterator接口,所以只要实现了Iterator接口的类,就可以使用Iterator迭代器了。

  2. Collection是List、Set的父接口

    1. List常见实现,元素有序可重复
      • List list1 = new ArrayList();
        底层数据结构是数组,查询快,增减慢;线程不安全,效率高
      • List list2 = new Vector();
        底层数据结构是数组,查询快,增减慢;线程安全,效率低
      • List list3 = new LinkedList();
        底层数据结构是链表,查询慢,增减快;线程不安全,效率低
    2. Set常见实现,元素无序,不可重复
      • Set hashSet = new HashSet();
        底层实现其实是一个数组,不可重复,线程不安全,集合元素可以为空NULL。集合中存入一个元素时,
        HashSet会先调用该对象的hashCode方法来获取该对象的hashCode值,然后如果相同再判断equals()方法是否返回为true。
        即需要hashSet需要限制,当equals()方法判断相同时,hashCode的值也相同。
      • 常见的hashCode算法..