前言:
现时看官们对“java中的容器主要分为”大约比较珍视,咱们都想要学习一些“java中的容器主要分为”的相关内容。那么小编同时在网络上收集了一些关于“java中的容器主要分为””的相关知识,希望小伙伴们能喜欢,咱们快快来了解一下吧!容器化是程序员在学习java编程开发技术的时候需要重点掌握的编程知识之一,下面我们就一起来了解一下,java编程常见的容器类型都有哪些。
1.List
有序的collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。与set不同,列表通常允许重复的元素。
Arraylist:Object数组
Vector:Object数组
LinkedList:双向链表(JDK1.6之前为循环链表,JDK1.7取消了循环)
2.Set
一个不包含重复元素的collection。更确切地讲,set不包含满足e1.equals(e2)的元素对e1和e2,并且多包含一个null元素。正如其名称所暗示的,此接口模仿了数学上的set抽象。
HashSet(无序,):基于HashMap实现的,底层采用HashMap来保存元素
LinkedHashSet:LinkedHashSet继承与HashSet,并且其内部是通过LinkedHashMap来实现的。有点类似于我们之前说的LinkedHashMap其内部是基于Hashmap实现一样,不过还是有一点点区别的。
TreeSet(有序,):红黑树(自平衡的排序二叉树。)
3.Map
将键映射到值的对象。一个映射不能包含重复的键;每个键多只能映射到一个值。
HashMap:JDK1.8之前HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突)。JDK1.8以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为8)时,将链表转化为红黑树,以减少搜索时间
LinkedHashMap:LinkedHashMap继承自HashMap,所以它的底层仍然是基于拉链式散列结构即由数组和链表或红黑树组成。另外,LinkedHashMap在上面结构的基础上,增加了一条双向链表,使得上面的结构可以保持键值对的插入顺序。同时通过对链表进行相应的操作,实现了访问顺序相关逻辑。
Hashtable:数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的。
TreeMap:红黑树(自平衡的排序二叉树)
4.Queue
在处理元素前用于保存元素的collection。除了基本的Collection操作外,队列还提供其他的插入、提取和检查操作。
5.ListSetMap的区别
List(对付顺序的好帮手):List接口存储一组不(可以有多个元素引用相同的对象),有序的对象;
Set(注重单一的性质):不允许重复的集合。不会有多个元素引用相同的对象。;
Map(用Key来搜索的专家):使用键值对存储。Map会维护与Key有关联的值。两个Key可以引用相同的对象,但Key不能重复,典型的Key是String类型,但也可以是任何对象。
标签: #java中的容器主要分为