集合(被问到的可能性也很高,而且必须要会,不然很影响面试结果)
集合分为两种 Collection 集合和 Map 集合,Collection 集合是一个接口,内部有两个实
现 list 接口和 Set 接口

问题一:list 集合和 set 集合的区别
List 集合是存储有序的可重复的数据,Map 集合存储无序的不可重复的数据,如果重复的
数据存入,就会对原有数据进行覆盖。List 集合有 ArrayList 和 linkedlist,Set 集合主要
有 hashSet,Map 集合主要有 hashmap 和 hashtable

问题二:Arraylist 和 linkedlist 的区别

  1. ArrayList的实现是基于数组来实现的,LinkedList的基于双向链表来实现。
  2. LinkedList比ArrayList更占内存,因为LinkedList的节点除了存储数据,还存储了两个引用,一个指向前一个元素,一个指向后一个元素。
  3. 对于随机访问,ArrayList要优于LinkedList。
  4. 对于插入和删除操作,LinkedList优于ArrayList(理论上),实际并非如此(实际上ArrayList不论是插入还是删除效率,在元素数量趋多时,都是要优于LinkedList的

问题三:hashmap 和 hashtable 的区别
1、HashMap继承AbstractMap类。
Hashtable继承了Dictionary类。
2、HashMap允许有null的键和值。~~~~
Hashtable不允许有null的键和值。
3、Hashtable的方法是synchronized的,HashMap不是。
Hashtable是线程安全的,HashMap是非线程安全的。
4、HashMap有containsvValue和containsKey方法。
Hashtable有contains方法。

问题四:说出ArrayList,Vector, LinkedList的存储性能和特性
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上比较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

问题五:Collection 和 Collections的区别。
  Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

问题六:List, Set, Map是否继承自Collection接口?
List,Set是,Map不是

问题七:Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

问题八:你所知道的集合类都有哪些?主要方法?
最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List 适用于按数值索引访问元素的情形。
Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。

问题九:List、Map、Set三个接口,存取元素时,各有什么特点?
List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。

问题十:Set和List的区别(将常用类的数据结构也顺带说出来  以及不同数据结构的一个优缺点)

List:1.可以允许重复的对象。

  2.可以插入多个null元素。

3.是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序。

4.常用的实现类有 ArrayList、LinkedList 和 Vector。ArrayList 最为流行,它提供了使用索引的随意访问,而 LinkedList 则对于经常需要从 List 中添加或删除元素的场合更为合适。

Set:1.不允许重复对象

  2. 无序容器,你无法保证每个元素的存储顺序,TreeSet通过 Comparator  或者 Comparable 维护了一个排序顺序。

3. 只允许一个 null 元素

4.Set 接口最流行的几个实现类是 HashSet、LinkedHashSet 以及 TreeSet。最流行的是基于 HashMap 实现的 HashSet;TreeSet 还实现了 SortedSet 接口,因此 TreeSet 是一个根据其 compare() 和 compareTo() 的定义进行排序的有序容器。
Map:

1.Map不是collection的子接口或者实现类。Map是一个接口。

2.Map 的 每个 Entry 都持有两个对象,也就是一个键一个值,Map 可能会持有相同的值对象但键对象必须是唯一的。

3. TreeMap 也通过 Comparator  或者 Comparable 维护了一个排序顺序。

4. Map 里你可以拥有随意个 null 值但最多只能有一个 null 键。
5.Map 接口最流行的几个实现类是 HashMap、LinkedHashMap、Hashtable 和 TreeMap。(HashMap、TreeMap最常用)


半颠
24 声望3 粉丝