java集合
Collection
java的集合类主要由两个接口派生而出,Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。
Collection接口、子接口及其实现类的继承树。
注意:黄色背景是我们经常用到的
LinkedList与ArrayList、ArrayDeque的实现机制完全不同,ArrayList、ArrayDequ内部比数组的形式来保存集合中的元素,因此随机访问元素时有较好的性能;而LinkedList内部以链式的形式来保存集合中的元素,随机访问集合元素时性能较差,但在插入、删除元素时性能比较出色。
线程是否安全
安全:Vector
不安全:LinkedList ArrayList,解决线程问题可以通过使用CopyOnWriteArrayList 写时复制
Map
Map接口、子接口及其实现类的继承树。
HashMap和Hashtable的区别
- 线程是否安全:HashMap是非线程安全的,Hashtable是线程安全的;Hash内部的方法基本都经过synchronized修饰。
- 效率:HashMap比Hashtable效率高一点。Hashtable基本被淘汰,不要在代码中使用它。
- 对Null key 和Null value的支持: HashMap 中,null可以作为键,这样的键只有一个,可以有一个或多个键所对应的值为 null。但是在 Hashtable 中 put 进的键值只要有一个null,直接抛出 NullPointerException,ConcurrentHashMap的key不可以为空。
注意:橘黄色背景是我们经常用到的