java集合总结

一、集合的基本概念总结

  • Collection(单列集合)

    • List(有序,可重复)
    • ArrayList
      • 底层数据结构为数组,查询快,增删慢,线程不安全,效率高
    • Vector
      • 底层数据结构为数组,查询快,增删慢,线程安全,效率低
    • LinkedList
      • 底层数据结构为链表,查询慢,增删快,线程不安全,效率高
    • Set(无序,唯一)
    • HashSet
      • 底层数据结构为哈希表
      • 哈希表依赖两个方法:hashCode()和equals()
      • 执行顺序
      • 首先判断hashCode()的值是否相同
        • 是:执行equals()方法,看其返回值
        • 是true:说明元素重复,不添加
        • 是false:直接添加到集合
        • 否:直接添加
      • 最终:自动生成equals()和hashCode()方法在目标类当中
      • LinkedHashSet
      • 底层数据结构由链表和哈希表组成
      • 链表保证元素有序
      • 哈希表保证元素唯一
    • TreeSet
      • 底层数据结构是红黑树(红黑树是一种自平衡的二叉树)
      • 如何保证村的元素唯一性呢?
      • 根据比较的返回值是否为零来判断
      • 如何保证元素的排序呢?
      • 自然排序(元素具备比较性):让元素所属的类实现Comparable接口
      • 比较器排序(集合具备比较性):让集合接收一个Comparator的实现类对象
  • Map(双列集合)

    • Map集合的数据结构只针对键有效,与值无关;
    • 存储的是键值对的元素,键唯一,值可重复
    • HashMap
    • 底层数据结构为哈希表,线程不安全,效率高
    • 哈希表依赖两个方法:hashCode()和equals()
    • 执行顺序
      • 首先判断hashCode()的值是否相同
      • 是:执行equals()方法,看其返回值
        • 是true:说明元素重复,不添加
        • 是false:直接添加到集合
      • 否:直接添加
    • 最终:自动生成equals()和hashCode()方法在目标类当中
    • LinkedHashMap
      • 底层数据结构由链表和哈希表组成
      • 链表保证元素有序
      • 哈希表保证元素唯一
    • Hashtable
    • 底层数据结构为哈希表,线程安全,效率低
    • 哈希表依赖两个方法:hashCode()和equals()
    • 执行顺序
      • 首先判断hashCode()的值是否相同
      • 是:执行equals()方法,看其返回值
        • 是true:说明元素重复,不添加
        • 是false:直接添加到集合
      • 否:直接添加
    • 最终:自动生成equals()和hashCode()方法在目标类当中
    • TreeMap
    • 底层数据结构是红黑树(红黑树是一种自平衡的二叉树)
    • 如何保证村的元素唯一性呢?
      • 根据比较的返回值是否为零来判断
    • 如何保证元素的排序呢?
      • 自然排序(元素具备比较性):让元素所属的类实现Comparable接口
      • 比较器排序(集合具备比较性):让集合接收一个Comparator的实现类对象

二、到底使用那种集合

  • 看需求
  • 是否是键值对对象形式:
    • 是:Map
    • 键是否需要排序
      • 是:TreeMap
      • 否:HashMap
    • 不知道使用 HashMap
    • 否:Collection
    • 元素是否唯一
      • 是 Set
      • 元素是否需要排序:
        • 是:TreeSet
        • 否:HashSet
      • 不知道使用HashSet
      • 否 List
      • 要安全吗:
        • 要:Vector
        • 不要:ArrayList或者LinkedList
        • 增删多:LinkedList
        • 查询多:ArrayList
        • 不知道,使用ArrayList
    • 不知道,使用ArrayList

三、集合常见常见方法及遍历方式

  • Collection:
    • add()
    • remove()
    • contains()
    • iterator()
    • size()
    • 遍历
      • 增强for
      • 迭代器
    • List
      • get()
      • 遍历:
      • 普通for
    • Set
  • Map
    • put()
    • remove()
    • containskey(),containsValue()
    • keySet()
    • get()
    • value()
    • entrySet()
    • size()
    • 遍历:
      • 根据键找值
      • 根据键值对对象分别找键和值

四.尾巴

1.如有错误欢迎大家指出,我会及时更正,有什么不懂也可以留言提问,互相交流吗。
2.也许大家觉得这没什么,但是我会认真对待,把它当成我的笔记、心得、这样才能提升自己。

欢迎访问我的csdn博客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章