集合

Collection 单列集合

Map 双列集合

一、Collection

List集合

1、ArrayList:

  • 底层数据结构是数组,查询快,增删慢
  • 线程不安全,效率高

2、Vector:

  • 底层数据结构是数组,查询快,增删慢
  • 线程安全,效率低

3、LinkedList:

  • 底层数据结构是链表,查询慢,增删快
  • 线程不安全,效率高

 

Set集合
Set集合的特点

  • 无序,唯一

1、HashSet

  • 底层数据结构是哈希表(是一个元素为链表的数组)
  • 哈希表底层依赖两个方法:hashCode()和equals()

执行顺序:

  • 首先比较哈希值是否相同
  • 相同:继续执行equals()方法
  • 返回true:元素重复了,不添加
  • 返回false:直接把元素添加到集合
  • 不同:就直接把元素添加到集合

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

  • 由hashCode()和equals()保证的

2、LinkedHashSet:

  • 底层数据结构是由链表和哈希表组成
  • 由链表保证元素有序
  • 由哈希表保证元素唯一

3、TreeSet

  • 底层数据结构是红黑树(是一个自平衡的二叉树)
  • 保证元素的排序方式

           a:自然排序(元素具备比较性)

                让元素所属的类实现Comparable接口
            b:比较器排序(集合具备比较性)
                让集合构造方法接收Comparator的实现类对象

5:在集合中常见的数据结构(掌握)
    ArrayXxx:底层数据结构是数组,查询快,增删慢
    LinkedXxx:底层数据结构是链表,查询慢,增删快
    HashXxx:底层数据结构是哈希表。依赖两个方法:hashCode()和equals()
    TreeXxx:底层数据结构是二叉树。两种方式排序:自然排序和比较器排序

 

二、Map
将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
Map和Collection的区别?

  • Map 存储的是键值对形式的元素,键唯一,值可以重复。夫妻对
  • Collection 存储的是单独出现的元素,子接口Set元素唯一,子接口List元素可重复。光棍

注意:Map结构的数据结构仅仅针对键有效,与值无关

1、HashMap:见HashSet,线程不安全,效率高2、HashTable:键值不可为null,线程安全,效率低3、LinkedHashMap:3、TreeMap:见TreeSet

 

posted @ 2018-09-15 21:56  谁叫土豆豆豆  阅读(134)  评论(0编辑  收藏  举报