Java基础 (22) 集合

常见问题
1)List, Set, Map的区别
2)List和Map的实现方式以及存储方式
3) 并发集合了解哪些?
4) 列举java的集合以及集合之间的继承关系
5) 集合类以及集合框架
6) 容器类介绍以及之间的区别
7)ArrayList和LinkedList的区别,以及应用场景

collection图


Comparator

List:

ArrayList:基于动态数组,支持随机访问
LinkedList:基于双向循环链表实现,只能顺序访问。但是可以快速地在链表中间插入和删除元素。
还可以用作栈、队列 和 双端队列。

Set:

HashSet:基于Hash实现,支持快速查找,但是失去有序性。
TreeSet:基于红黑树实现,保持有序。但是查找效率不如HashSet;
LinkedHashSet:具有HashSet的查找效率,且内部使用链表维护元素的插入顺序,因此具有有序性。

Queue:

LinedList 和PriorityQueue,其中LinkedList支持双向队列,PriorityQueue是基于堆结构实现。

Map:

HashMap:基于Hash实现
LinkedHashMap:使用链表来维护元素的顺序,顺序为插入顺序或者最近最少使用顺序。
TreeMap:基于红黑树实现
ConcurrentHashMap:线程安全Map,不涉及类似于HashTable的同步加锁。

散列:

使用hasCode来返回散列值,使用的是对象的地址。而equals() 是用来判断两个对象是否相等的,相等的两个对象散列值一定要相同,
但是散列值相同的两个对象不一定相等。
1.自反性 2. 对称性 3.传递性 4. 一致性 5. 对任何不适null的对象x调用x.equals(null) 结果都为false

你可能感兴趣的:(Java基础 (22) 集合)