说到List集合,就不得不说ArrayList,因为一般学过List集合的人都知道,最开始我们常用的创建List集合的方法就是
List list=new ArrayList();
ArrayList是基于数组的实现,因为ArrayList是基于数组的实现,所以ArrayList集合在查询元素和添加元素的效率相对较高。
ArrayList和LinkList的区别(听说是笔试,面试的常考题)
ArrayList与LinkList都是List接口的实现,表示有序可重复的集合类。
但是ArrayList是基于数组的实现,所以ArrayList中对于元素的查询和添加效率较高。
LinkList是基于链表的实现,所以LinkList中对于元素的插入和删除效率较高。
ArrayList和Vector的区别
ArrayList与Vector都是List接口的实现,且都是基于数组的集合。
ArrayList没有实现同步,是线程非安全的,但是Vector是实现了同步,是线程安全的,可用于多线程编程中;由于有得必有失,所以Vector实现了同步就要以牺牲效率为代价,所以Vector相对于ArrayList来说效率较低。
HashSet和TreeSet的区别
HashSet与TreeSet都是Set接口的实现,表示无序不可重复的集合类。
HashSet是根据哈希码对元素进行存储和排序,TreeSet是按照“自然顺序”对元素进行排列。