java复习随笔(四)——集合

集合

Collection单列

Collection单列集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素。
JDK不提供此接口的任何实现,它提供更具体的子接口(如set和list)的实现。创建Collection对象采用多态的方式。

Collection子类——List可重复集合

  1. ArrayList
    ArrayList数据结构是动态数组
  2. LinkedList
    LinkedList数据结构是双向链表

两者区别:

  1. 数据结构不同。
  2. 线程安全性来说ArrayList是线程不安全的,而LinkedList是线程安全的。
  3. 效率不同,随机访问list时,ArrayList比LinkedList更加高效。
  4. 空间灵活性不同,ArrayList随着元素增加需要不断增加指定容量。而LinkedList则无需指定容量。
  5. 主要开销不同,ArrayList主要控件开销在于需要list列表预留一定空间,而LinkedList主要控件开销在于需要存储节点信息以及节点指针。

Collection子类——Set不可重复集合

Set不包含重复元素的集合。其次Set没有带索引方法,所以不能使用普通for循环。

  1. HashSet

    • HashSet对迭代次序不做任何保证。
    • HashSet通过hashCode和equals方法保证元素唯一性。
    • 可以通过重写hashCode和equals方法,来比较元素是否重复。
  2. TreeSet

    • TreeSet集合中的元素按照一定的规则进行排序,具体排序方式取决于构造方法。
      • TreeSet():根据元素的自然顺序进行排序
      • TreeSet(Comparator comparator):根据指定的比较器进行排序
    • 没有索引方法,所以不能使用普通for循环进行遍历。

Map双列

Map子类——HashMap

posted @ 2022-09-03 22:02  maplerain  阅读(27)  评论(0)    收藏  举报