文章目录
1、Java 中的 LinkedList 是单项链表还是双向链表?
是双向链表,你可以检查 JDK 的源码。在 Eclipse,你可以快捷键 Ctrl+T,直接在编译器中打开该类。
2、java 中的 TreeMap 是采用什么树实现的?
Java 中的 TreeMap 是使用红黑树实现的。
3、Hashtable 与 HashMap 有什么不同之处?
这两个类有许多不同的地方,下面列出了一部分:
a) Hashtable 是 JDK 1 遗留下来的类,而 HashMap 是后来增加的。
b) Hashtable 是同步的,比较慢,但 HashMap 没有同步策略,所以会更快。
c) Hashtable 不允许有个空的 key, 但是 HashMap 允许出现一个 null key。
4、Java 中的 HashSet,内部是如何工作的?
HashSet 的内部采用 HashMap 来实现。由于Map 需要key 和 value,所以所有 key都有一个默认 value。类似于 HashMap, HashSet 不允许重复的key,只允许有一个 null key,意思就是 HashSet 中只允许存储一个 null 对象。
5、写一段代码在遍历 ArrayList 时移除一个元素?
该问题的关键在于面试者使用的是 ArrayList 的 remove() 还是 lterator 的 remove() 方法。这有一段示例代码,是使用正确的方式来实现遍历的过程中移除元素,而不会出现 ConcurrentModificationException 异常的实例代码。