Skip to content

Latest commit

 

History

History
69 lines (35 loc) · 3.52 KB

File metadata and controls

69 lines (35 loc) · 3.52 KB

Java 集合面试问题和解答

原文: https://beginnersbook.com/2015/03/java-collections-interview-questions-and-answers/

之前我在 Java 集合框架上分享了 100+ 教程。在本文中,我将分享有关 Java 集合框架的面试问题。如果您不熟悉集合,我建议您在完成以下问题集之前参考这些教程,因为它们可以帮助您学习集合的基础知识。开始吧…

几乎在每次面试中,您都会被要求解释两个集合类或两个集合界面之间的差异,“差异”问题在访问者中变得如此受欢迎,以至于他们在访谈期间提出了大约 90%的问题。我几乎涵盖了所有常见的收藏差异。他们是:

Q)ArrayListVector有什么区别?

A)参考文章:Arraylist vs. Vector

Q)ArrayListLinkedList有什么区别?

A)参考:ArrayList vs. LinkedList

问:HashMapHashtable有什么区别?

A)参考:HashMapHashtable

问:HashSetTreeSet有什么区别?

A)参考:HashSet vs. TreeSet

问)ArrayListHashMap有什么区别?

A)参考:ArrayList vs. HashMap

问)ListSetMap接口有什么区别?

A)参考:ListSetMap

问:IteratorListIterator有什么区别?

A)参考:IteratorListIterator

问:IteratorEnumeraton有什么区别?

A)以下是它们之间的一些差异:

1)Iteator可用于遗留(Vector等)类以及非遗留类(ArrayListLinkedList等),而枚举基本上用于传统类,如Vector

2)迭代器比枚举慢。

3)迭代器是失败快速的,而枚举则不是。

Q)如何同步HashMap

A)参考:HashMap同步

Q)如何同步ArrayList

A)参考:ArrayList同步

问:故障快速和故障安全有什么区别?

A)当底层集合中存在结构修改时,快速失败的Iterator抛出ConcurrentModificationException,而故障安全的Iterator,在检测到结构修改时不会抛出任何异常,因为故障安全迭代器与底层集合的克隆一起工作。

Q)如何将数组转换为ArrayList

A)参考:数组到ArrayList的转换

问)如何从ArrayList中删除重复的元素?

A)参考本教程

Q)如何循环ArrayList

A)参考本教程