1、List最常用的是ArrayList和linkedList,是线性数据结构的主要体现 // a:ArrayList底层是数组,是容量可改变的非线程安全集合。添加元素前默认为empty_capacity,当向ArrayList添加第一个元素时,变为默认 //容量10,每次扩容为当前1.5倍。支持对元素的快速随机访问,但插入或删除的时侯需要移动其他元素,所以一般情况下增删较慢 //b:LinkedList本质是双向链表,与ArrayList相比插入和删除速度更快,但随机读取数据较慢,在大数据量测试下体现明显,并且LinkedList //实现了Deque接口,也就是Double-ended queue这个接口同时拥有栈和队列的性质。其中size、first和last分别代表链表中节点的个数、第一个节点 //和最后一个节点的引用。将零散的内存单元以附加引用的方式关联起来,形成链路的顺序查找结构,内存利用率较高 //2、queue是一种先进先出的数据结构,是一种特殊的线性结构表,只允许在表的一头进行获取操作,在另一头进行插入操作一般用在 //阻塞队列blockingQueue做数据缓冲区来使用 //3、Map是以k,v键值对形式存储实现的哈希结构。常见的hashMap、key有序的treeMap和线程安全的concurrentHashMap //a:linkedHashMap是继承hashMap,基于hashMap链表实现的双向链表数据结构。它的Entry继承了HashMap.Node的基础上 // 只添加了双向链表的前后指针。linkedHashMap保证的是插入的顺序而treeMap保证的自然大小的顺序、如int的1、2、3等 //4、Set是不允许出现重复元素的集合类型。常见的set集合有hashSet、treeSet和linkedHashSet
同样继承list,底层是双向链表。内置了一个Node数据结构。Node中包含前向指针(prev)和后项指针(next)作为参数。一个节点中包含当前元素的隐式和下一个元素的地址