Java常用面试题之Java集合框架篇(三)


21、ArrayList和Vector的区别

	效率:ArrayList效率高,Vector效率低,不推荐使用
	安全:ArrayList的方法不同步,线程不安全,Vector的方法同步,线程安全

22、HashMap和Hashtable的区别

	效率:HashMap效率高,Hashtable效率低,不推荐使用
	安全:HashMap的方法不同步,线程不安全,Hashtable的方法同步,线程安全

23、List和 Map区别?

	List:存储单列数据的集合,数组结构,存储的数据有序且可以重复,继承自Collection接口
	Map:存储双列数据的集合,以键值对的形式存储,存储的数据无序,Key不重复,value可以重复,本身就是顶层
	接口
	
24、List,Set, Map是否继承自Collection接口?

	List,Set均继承自Collection接口;Map本身就是顶层接口

25、List、Map、Set三个接口,存取元素时,各有什么特点?

	List:支持索引,有序存取,元素可重复,查询速度快,添加删除操作速度慢
	Map:无索引,以键值对的形式存储,Key不重复,value可以重复,添加删除操作速度快
	Set:无索引,无序存取,元素不可重复,添加删除操作速度快

26、说出ArrayList,Vector,LinkedList的存储性能和特性

	ArrayList,LinkedList的效率高,线程不安全,Vector的效率低,但线程安全
	ArrayList基于数组结构,查询效率高,添加和删除效率低
	LinkedList基于链表结构,添加和删除效率高,查询效率低

27、去掉一个Vector集合中重复的元素

	方法一:使用Vector.contains()判断是否包含该元素,如果没有就添加到新的集合中
	方法二:将Vector集合中的元素遍历出来,添加到Set集合中,由于Set集合存取元素不可重复,所以可以去除
	Vector集合中的重复元素
	
28、Collection和Collections的区别。

	Collection是集合框架的一个顶层接口,它的主要子类有List,Set,用来存储,操作多个元素
	Collections是集合框架的一个工具类,主要提供了对集合的搜索,排序等方法的实现

29、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?它们有何区别?

	先判断HashCode值是否相等,如果相等再用equals方法判断
	==是判断对象的内存地址是否相等,equals是判断对象的内容是否相等
	
30、你所知道的集合类都有哪些?主要方法?

	ArrayList,LinkedList add(E e) size() contains(E e) remove(E e) isEmpty()
	HashSet,TreeSet      add(E e) size() contains(E e) remove(E e) hashCode()
	HashMap,TreeMap,     put(K,V) containsKey(Object key) entrySet() keyset()

上一篇: Java常用面试题之Java基础篇(二)
下一篇: Java常用面试题之Java基础篇(四)

猜你喜欢

转载自blog.csdn.net/Mr_TXQ/article/details/109045846