1.Collection、List、Set之间的联系和区别是什么?
Collection、List、Set均是接口,List、Set是Collection的子接口。List允许元素重复,Set不允许。
2.遍历一个集合对象都有哪些方法?
遍历接口主要有枚举接口Enumeration和迭代器接口Iterator。进行遍历时常用Iterator,Enumeration仅限于特定类,如Vector、Hashtable。
3.同数组相比,Vector有何特点?
可实现自动增长的对象数组。
4.Vector与ArrayList、LinkedList与ArrayList、Hashtable与HashMap、TreeMap与HashMap之间的共同点和区别是什么?
Vector、ArrayList与LinkedList都是用来存储一组数量可变的对象集合。
Vector方法是同步的,是线程安全的,当Vector中的元素超过它的初始大小时,Vector会将它的容量翻倍。ArrayList方法不是同步的,但性能很好,当ArrayList中的元素超过它的初始大小时,ArrayList只增加50%的大小。LinkedList内部实现是基于一组连接的记录,更像是应该链表结构。
Hashtable、HashMap与TreeMap都可以实现多组key和value之间的映射。Hashtable是同步的,HashMap是异步的,TreeMap在操作上需要比HashMap更多一些的开销,这是由于树的机构造成的。
5.Map、Collection、Iterator之间的关系如何?
Map接口实现者调用接口方法values()返回一个实现collection接口的集合对象的引用,collection接口的实现者有可调用iterator()方法返回一个实现Iterator接口的对象引用。
6.Collection和Collections各自的功能是什么?
Collection是集合类的基本接口,它用来说明作为一个集合类应有的结构特征属性和共性操作方法。
collections是一个util包下的工具类,其类不能被实例化,提供了许多实用的static方法。
常用的方法有
- Collections.sort 对集合排序(需要实现int compareTo)
- Collections.synchronizedMap 返回一个线程安全的map
- Collections.binarySearch 二分查找一个元素
- Collections.shuffle 对集合进行随机排序(就是指每次排序后都不同)