集合面试题 (持续更新中...)

1. 集合和数组的区别?
集合和数组都是Java容器,都是对多个内存层面的数据进行存储操作的;
集合的底层用的也是数组,它们之间是具有相关性的。
数组存储数据的特点:一旦初始化以后,数组内元素的类型和数组长度就确定。
集合相较于数组具有更强的可变性,里面存储的元素个数和元素类型是可以发生改变的。
集合相较于数组具有更多的方法,更方便的对集合中的元素进行较高效率的增删查改操作。如:数组中存储的元素是可重复的,想要去重比较麻烦,需要进行遍历,而集合中的Set中只能存储不可重复的元素,使用Set就能达到一个去重的效果。

2. 你是用过集合框架吗?介绍一下?或List、Set、Map 的异同?
我们的集合体系下一般有两大接口,Collection 和 Map ,
Collection 接口是单列集合,用来存储一个一个的对象,它下面没有实现类只有 List 和 Set 两大子接口。
List 它里面可以存储有序的可重复的元素,更像是我们的“动态数组”
List 接口有三个实现类,分别是 ArrayList、LinkedList、Vector。
ArrayList 可以使用元素的索引对里面存储的元素进行操作;

Set接口,存储的是无序的、不可重复的数据,
Set接口常用的实现类有 HashSet、LinkedHashSet 和 TreeSet
Set 中较为常用的就是 HashSet 和 LinkedHashSet

Map 存储的是 key-value 类型的映射数据
Map 的实现类有 HashMap、LinkedHashMap、TreeMap、Hashtable、Properties

原文地址:https://www.cnblogs.com/listenerxx/p/14747137.html