集合简单总结
Collection集合/接口
List集合/接口
特点:有序且可重复
ArrayList:
LinkedList:
Vector:JDK1.0就有了
Stack:
Set集合/接口
特点:无序不可重复
HashSet:
LinkedHashSet:有序的
TreeSet:
Map集合/接口
特点:
键值对 Key-Value
保证key的唯一性
HashMap:
HashTable:
ConcurrenHashMap:
LinkedHashMap:
TreeMap:
注意:
Collection集合 和 Map集合的区别?
Collection集合存储的是单一对象
Map集合存储的是键值对(Key-Value)
对于无序的理解:
无序不代表随机,无序是指存入顺序与取出顺序不一致
泛型:
是一种数据安全的做法,规定了集合应该存储什么样的数据类型
集合的应用场景:
ArrayList:存储数据,线程不安全
LinkedList:存储数据,队列模式和栈模式
Vector:存储数据,线程安全的
Stack(继承Vector):栈模式
HashSet:存储数据,去重
LinkedHashSet:存储数据,去重,有序的
TreeSet:存储数据,自然排序
HashMap:存储数据-键值对形式,key可以去重,可以存null键null值,线程不安全
Hashtable:存储数据-键值对形式,key可以去重,不可以存null键null值,线程安全
ConcurrentHashMap:存储数据-键值对形式,key可以去重,不可以存null键null值,线程安全,分段式加锁,效率更快
LinkedHashMap:存储数据-键值对形式,key可以去重,可以存null键null值,线程不安全,有序的
TreeMap:存储数据-键值对形式,针对于key排序
排序接口:
Comparable
Comparator
排序优先级别:Comparator > Comparable
线程安全的:Vector ,Hashtable ,ConcurrentHashMap,
有序的且可重复:ArrayList,Vector,LinkedList,Stack
无序的且不可重复:HashSet,LinkedHashSet(有序不可重复),TreeSet
去重:HashMap,Hashtable,ConcurrentHashMpa,LinkedHashMap,HashSet,LinkHashSet
TreeMap和TreeSet的去重是由comparable 里的接口 compareto方法 决定的
可以存在null键和null值的:HashMap,LinkedHashMap