跳至主要內容

常见容器

引领潮流大约 1 分钟知识进阶archive

1、list ,set map特点

list:有序,可重复,索引查询速度快。插入,删除,伴随数据移动慢 set:无序,不可重复 map:键值对,键唯一,值多个

List, set,继承自CollectIon接口,map不是

2、线程安全集合类与非线程安全

LinkedList,ArrayList,HashSet是非线程安全的,Vector是线程安全的 HashMap是线程安全的,HashTable是非线程安全的 StringBuilder是非线程安全的,StringBuffer是线程安全的

3、 ArrayList与LinkedList区别

ArrayList是基于动态数组的数据结构实现,因为地址连续,查询效率比较高,但是插入和删除效率低

LinkedList是基于链表的数据结构实现,地址是任意的,不需要连续的地址空间,对新增和删除效率高,但是查询效率低

4、 ArrayList与LinkedList扩容

ArrayList初始化大小为10,扩容规则:扩容大小 =原始大小 + 原始大小/2 + 1(即 1.5倍+1) LinkedList是一个双向链表,没有初始化大小,也没有扩容规则,新增即可

5、HashSet和TreeSet区别

TreeSet是基于红黑树实现的,是自动排好序的 HashSet是基于哈希表实现的,数据是无序的 HashSet要求放入对象实现hashCode()方法

6、set集合从原理上如何保证不重复