1,Collection和Collections有什么区别?
Collection是JDK中几何结构的最基本的接口,Collections是包装类,它包含有各种有关集合操作的静态方法,不能实例化。
2,ArrayList和Vector的联系和区别
相同点:底层都使用数组实现
功能相同,实现增删改查等操作的方法相似
长度可变的数组结构
不同点:Vector的方法是同步的,线程安全;ArrayList非线程安全,但性能比Vector好
3,ArrayList和LinkedList的区别是什么
①ArrayList基于动态数组实现的非线程安全的集合;LinkedList基于双向链表实现的非线程安全的集合
②扩容问题:ArrayList使用数组实现,无参构造函数默认初始化长度为10 ,LinkedList不存在扩容问题
4.List,Set,Map之间的区别是什么?
①List:有序集合,元素可重复
②Set:不重复集合
③Map:键值对集合,存储键,值之间的映射,key无序,允许重复
5.如何决定使用HashMap还是TreeMap
对于在Map中插入,删除和定位元素这类操作,HashMap是最好的选择,假如你需要对一个有序的key集合进行遍历,TreeMap是最好的选择。
6,HashMap和HashSet有什么区别?
HashMap
①,实现Map接口
②,键值对的方式存储
③,新增元素使用put(K key,V value)方法
④,底层通过对key进行hash,使用数组+链表或红黑树对key,value存储
HashSet
①,实现Set接口
②,存储元素对象
③,新增元素使用add(E e)方法
④底层是采用HashMap实现,大部分方法都是通过调用HashMap的方法来实现
7通过条件何时用到的集合
8.HashMap和HashTable的比较
线程安全:Hashtable是同步的,这个类中的一些方法加入了synchronized关键字,保证了Hashtable中的对象是线程安全的;而HashMap则是异步的,因此HashMap中的对象并不是线程安全的。
空值:HashMap可以让你将空值作为key或value,但是Hastable是不能放入空值的;HashMap最多只有一个key只为null,但可以有多个value值为null
性能:HashMap的性能最好,HashTable的性能是最差