首页 > 代码库 > 57-71 容器考点

57-71 容器考点

一、介绍Collection框架结构

注意List,Set继承自Collection,Map不继承Collection。

二、Collection和Collections区别

1、java.util.Collection接口:是集合类的上级接口,继承他的接口主要有Set和List。

2、java.util.Collections类:是针对集合类的一个帮助类,它提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

三、Collection框架实现比较要实现什么接口

  Comparable 和 Comparator 都是用来实现集合中元素的比较、排序的。只是 Comparable 是在集合内部定义的方法实现的排序,而Comparator 是在集合外部实现的排序。所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。

1、实现java.lang.Comparable接口(集合本身实现该接口)

  重写该接口的唯一方法 int compareTo(T o)方法。

public class User implements Comparable{}//是User类继承该接口
使用时Arrays.sort(users);

2、实现java.util.Comparator接口(集合外定义一个类实现该接口)

  重写该接口的两个方法:int compare(T o1, T o2)和boolean equals(Object obj)。

public class SampleComparator implements Comparator{}//不是User类继承该接口
使用时Arrays.sort(array, new SampleComparator()); //需传入该接口的实例化对象

四、各种容器的区别

1、ArrayList和Vector的区别

相同点:二者都继承了List接口,是有序集合,允许重复元素,可以按索引号取出元素。(HashSet之类的集合不允许重复,不可按索引号取元素)

区别:

(1)Vector是线程安全的(即它的方法之间线程同步),适合多线程的情况;ArrayList线程不安全,效率高。

  注意:Vector和Hashtable是旧的,线程安全的;ArrayList与HashMap是java2才提供的,线程不安全。

(2)二者都有一个初始容量(可以自己设置),当存储元素超过容量时,Vector默认增长为原来两倍(可以自己设置);ArrayList增长为原来1.5倍(不可自己设置)。

2、HashMap和Hashtable区别

3、List和Map区别

4、List,Set,Map三个接口,存取元素的特点

5、ArrayList,Vector,LinkedList的存储性能和特点

五、去掉Vector集合中的重复元素

六、Set里元素不可重复,用什么方法区分重复与否,==还是equals()?它们有何区别?

七、你所知道的集合类有哪些,主要方法?

八、两个对象值相同(x.equals(y)==true),但有不同的hashcode。这句话对吗?

九、TreeSet里面放对象,如果同时放入父类和子类对象,比较时使用的是父类的还是子类的compareTo(),还是抛异常?

十、说出常用的类、包、接口各5个

57-71 容器考点