一、 ArrayList、LinkedList和Vector之间的差别;
Arraylist:底层数据结构:数组 查询快 增删慢 线程不安全 执行效率高 初始长度10 呈1.5倍扩容
linkedList: LinkedList底层实现是双向循环链表,当数据量很大或者操作很频繁的情况下,添加和删除元素时使用LinkedList具有更好的性能
vector:底层数据结构:数组 查询快 增删慢 线程安全 效率低(一般不用)、在操作方法采用的都是synchronized同步处理,
stack是他的子类,可提供有栈数据结构,采用先进后出的方式进行数据的入栈和出栈管理
三者都可以保存重复数组
arraylist与linkedlist都遵从list实现标准,所以两者代码形式完全相同。但是可引用的方法略有不同。
二、 HashMap 和 HashTable之间的差别 。
hashMap:底层数据结构:哈希表 哈希表底层数组+链表 线程不安全 效率高、采用散列(无序)存储。
hashTable:属于同步处理,性能较低 线程安全 。
三、 HashSet 和 TreeSet
hashSet:底层数据结构:哈希表 实际上是hashMap(new hashSet时底层会初始化一个hashMap)、存放的顺序是散列存放,没有顺序。
TreeSet:底层数据结构:红黑树 实际上是TreeMap(new TreeSet时底层会初始化一个TreeMap)存放是按照顺序来存放的,使用Comparable进行排序操作。