浅谈java之集合总结

集合体系图:

在这里插入图片描述

总结:

Connection接口:

— List 有序,可重复

1.ArrayList
优点: 底层数据结构是数组,查询快,增删慢。
缺点: 线程不安全,效率高
2.Vector
优点: 底层数据结构是数组,查询快,增删慢。
缺点: 线程安全,效率低
3.LinkedList
优点: 底层数据结构是链表,查询慢,增删快。
缺点: 线程不安全,效率高

—Set 无序,唯一
1.HashSet
底层数据结构是哈希表。(无序,唯一)
如何来保证元素唯一性?
1.依赖两个方法:hashCode()和equals()

2.LinkedHashSet
底层数据结构是链表和哈希表。(FIFO插入有序,唯一)
1.由链表保证元素有序
2.由哈希表保证元素唯一

3.TreeSet
底层数据结构是红黑树。(唯一,有序)

  • 如何保证元素排序的呢?
    自然排序
    比较器排序

  • 如何保证元素唯一性的呢?
    根据比较的返回值是否是0来决定
    针对Collection集合如何使用:

要求唯一:set集合
1.如果要求唯一,要求有顺序,则使用TreeSet或者LinkedHashSet
2.如果要求唯一,不要求有顺序,使用HashSet

不要求唯一:List集合
1.要求安全:Vector
2.不要求安全:ArrayList或者LinkedList

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

Map集合:

TreeSet的主要功能用于排序(内部排序:自然排序和比较器排序)
LinkedHashSet的主要用于有序的集合(先进先出) :保证按照插入顺序排序
HashSet只是通用的存储数据的集合

TreeSet, LinkedHashSet and HashSet 在java中都是实现Set的数据结构
Hashtable不允许null值,HashMap允许null值(key和value都允许)

集合遍历:

List 集合:
1)迭代器
2)普通for
3)增强for

Set 集合:

1)迭代器
2)增强for

Map集合:
1)根据键获取值:keySet()和get(Object key)
2)根据键值对对象获取键和值:entrySet()
Entry 接口中的方法:getKey()和getValue()
参考文章:Java集合中List,Set以及Map等集合体系详解(史上最全)

发布了46 篇原创文章 · 获赞 1 · 访问量 1009

猜你喜欢

转载自blog.csdn.net/qq_42022411/article/details/103079681