原文: https://beginnersbook.com/2015/03/java-collections-interview-questions-and-answers/
之前我在 Java 集合框架上分享了 100+ 教程。在本文中,我将分享有关 Java 集合框架的面试问题。如果您不熟悉集合,我建议您在完成以下问题集之前参考这些教程,因为它们可以帮助您学习集合的基础知识。开始吧…
几乎在每次面试中,您都会被要求解释两个集合类或两个集合界面之间的差异,“差异”问题在访问者中变得如此受欢迎,以至于他们在访谈期间提出了大约 90%的问题。我几乎涵盖了所有常见的收藏差异。他们是:
Q)ArrayList
和Vector
有什么区别?
A)参考文章:Arraylist
vs. Vector
Q)ArrayList
和LinkedList
有什么区别?
问:HashMap
和Hashtable
有什么区别?
A)参考:HashMap
与Hashtable
问:HashSet
和TreeSet
有什么区别?
A)参考:HashSet
vs. TreeSet
问)ArrayList
和HashMap
有什么区别?
问)List
,Set
和Map
接口有什么区别?
A)参考:List
,Set
和Map
问:Iterator
和ListIterator
有什么区别?
问:Iterator
和Enumeraton
有什么区别?
A)以下是它们之间的一些差异:
1)Iteator
可用于遗留(Vector
等)类以及非遗留类(ArrayList
,LinkedList
等),而枚举基本上用于传统类,如Vector
。
2)迭代器比枚举慢。
3)迭代器是失败快速的,而枚举则不是。
Q)如何同步HashMap
?
A)参考:HashMap
同步。
Q)如何同步ArrayList
?
A)参考:ArrayList
同步。
问:故障快速和故障安全有什么区别?
A)当底层集合中存在结构修改时,快速失败的Iterator
抛出ConcurrentModificationException
,而故障安全的Iterator
,在检测到结构修改时不会抛出任何异常,因为故障安全迭代器与底层集合的克隆一起工作。
Q)如何将数组转换为ArrayList
?
A)参考:数组到ArrayList
的转换。
问)如何从ArrayList
中删除重复的元素?
A)参考本教程。
Q)如何循环ArrayList
?
A)参考本教程。