🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Java 集合面试问题和解答 > 原文: [https://beginnersbook.com/2015/03/java-collections-interview-questions-and-answers/](https://beginnersbook.com/2015/03/java-collections-interview-questions-and-answers/) 之前我在 Java 集合框架上分享了 [100+ 教程](https://beginnersbook.com/java-collections-tutorials/)。在本文中,我将分享有关 Java 集合框架的面试问题。如果您不熟悉集合,我建议您在完成以下问题集之前参考[这些教程](https://beginnersbook.com/java-collections-tutorials/),因为它们可以帮助您学习集合的基础知识。开始吧… 几乎在每次面试中,您都会被要求解释两个集合类或两个集合界面之间的差异,“差异”问题在访问者中变得如此受欢迎,以至于他们在访谈期间提出了大约 90%的问题。我几乎涵盖了所有常见的收藏差异。他们是: **Q)`ArrayList`和`Vector`有什么区别?** A)参考文章:[`Arraylist` vs. `Vector`](https://beginnersbook.com/2013/12/difference-between-arraylist-and-vector-in-java/) **Q)`ArrayList`和`LinkedList`有什么区别?** A)参考:[`ArrayList` vs. `LinkedList`](https://beginnersbook.com/2013/12/difference-between-arraylist-and-linkedlist-in-java/) **问:`HashMap`和`Hashtable`有什么区别?** A)参考:[`HashMap`与`Hashtable`](https://beginnersbook.com/2014/06/difference-between-hashmap-and-hashtable/) **问:`HashSet`和`TreeSet`有什么区别?** A)参考:[`HashSet` vs. `TreeSet`](https://beginnersbook.com/2014/08/difference-between-hashset-and-treeset/) **问)`ArrayList`和`HashMap`有什么区别?** A)参考:[`ArrayList` vs. `HashMap`](https://beginnersbook.com/2013/12/difference-between-arraylist-and-hashmap-in-java/) **问)`List`,`Set`和`Map`接口有什么区别?** A)参考:[`List`,`Set`和`Map`](https://beginnersbook.com/2015/01/difference-between-list-set-and-map-in-java/) **问:`Iterator`和`ListIterator`有什么区别?** A)参考:[`Iterator`和`ListIterator`](https://beginnersbook.com/2014/06/difference-between-iterator-and-listiterator-in-java/`) **问:`Iterator`和`Enumeraton`有什么区别?** A)以下是它们之间的一些差异: 1)`Iteator`可用于遗留(`Vector`等)类以及非遗留类(`ArrayList`,`LinkedList`等),而枚举基本上用于传统类,如`Vector`。 2)迭代器比枚举慢。 3)迭代器是失败快速的,而枚举则不是。 **Q)如何同步`HashMap`?** A)参考:[`HashMap`同步](https://beginnersbook.com/2013/12/how-to-synchronize-hashmap-in-java-with-example/)。 **Q)如何同步`ArrayList`?** A)参考:[`ArrayList`同步](https://beginnersbook.com/2013/12/how-to-synchronize-arraylist-in-java-with-example/)。 **问:故障快速和故障安全有什么区别?** A)当底层集合中存在结构修改时,快速失败的`Iterator`抛出`ConcurrentModificationException`,而故障安全的`Iterator`,在检测到结构修改时不会抛出任何异常,因为故障安全迭代器与底层集合的克隆一起工作。 **Q)如何将数组转换为`ArrayList`?** A)参考:[数组到`ArrayList`的转换](https://beginnersbook.com/2013/12/how-to-convert-array-to-arraylist-in-java/)。 **问)如何从`ArrayList`中删除重复的元素?** A)参考[本教程](https://beginnersbook.com/2014/10/how-to-remove-repeated-elements-from-arraylist/)。 **Q)如何循环`ArrayList`?** A)参考[本教程](https://beginnersbook.com/2013/12/how-to-loop-arraylist-in-java/)。