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

来源:互联网 发布:丢书大作战 知乎 编辑:程序博客网 时间:2024/05/17 22:16

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:底层数据结构是二叉树,有两种排序方式:自然排序和比较器排序

阅读全文
0 0