天天看点

JAVA学习笔记——Collection集合总结

1、Collection集合总结:

  Collection

   |–List   有序,可重复

    |–ArrayList

      底层数据结构是数组,查询快,增删慢。

      线程不安全,效率高

    |–Vector

      底层数据结构是数组,查询快,增删慢。

      线程安全,效率低

    |–LinkedList

      底层数据结构是链表,查询快,增删慢。

      线程不安全,效率高

      

   |–Set   无序,唯一

    |–HashSet

      底层数据结构是哈希表。

      如何保证元素唯一性?

        依赖两个方法:hashCode()和equals()

        开发中直接生成这两个方法即可。

      |–LinkedHashSet

        底层数据结构是链表和哈希表

        链表保证数据元素有序

        哈希表保证元素唯一性

    |–TreeSet

      底层数据结构是红黑树

      如何保证元素排序的呢?

        自然排序

        比较器排序

      如何保证元素唯一性的呢?

        根据比较的结果返回值是否为0来决定

2、针对Collection集合我们到底使用哪一个?

 分析:

  唯一吗?

   唯 一:Set

       排序吗?

         是:TreeSet

         否:HashSet

       如果你知道是用Set,但是不知道用哪一个,就用HashSet

       

   不唯一:List

       要安全吗?

         是:Vector

         否:ArrayList 或者 LinkedList

             查询多:ArrayList

             增删多:LinkedList

       如果你知道使用List,但是不知道用哪个List,就用ArrayLst

如果你知道是Collection集合,但是不知道用哪个,就用ArrayList。

3.集合中常见的数据结构

ArrayXxxx:底层结构是数组,查询快,增删慢。

LinkedXxx:底层数据结构是链表,查询慢,增删快

HashXxx:底层数据结构是哈希表,依赖两个方法:hashCode()和equals()

TreeXxx:底层数据结构是二叉树,有两种排序方式:自然排序和比较器排序