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是异步的,允许键和值为null,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
对集合进行随机排序(就是指每次排序后都不同)
9.集合类对象调用remove方法将某个对象删除,这个对象是否就一定是垃圾对象了?
不是。删除的是对象的引用,并不是对象。