JAVA集合—list集合
什么是集合
集合可以看作是一种容器,用来存储对象信息。所有集合类都位于java.util包下,但支持多线程的集合类位于java.util.concurrent包下。Java集合类主要由两个根接口Collection和Map派生出来的,Collection派生出了三个子接口:List、Set、Queue(Java5新增的队列),因此Java集合大致也可分成List、Set、Queue、Map四种接口体系,
(注意:Map不是Collection的子接口)
以下开始讲解一些常用集合
list集合
List继承于Collection接口
List接口对Collection进行了简单的扩充
它的具体实现类常用的有ArrayList和LinkedList。你可以将任何东西放到一个List容器中,并在需要时从中取出。ArrayList从其命名中可以看出它是一种类似数组的形式进行存储,因此它的随机访问速度极快,而LinkedList的内部实现是链表,它适合于在链表中间需要频繁进行插入和删除操作。在具体应用时可以根据需要自由选择。前面说的Iterator只能对容器进行向前遍历,而ListIterator则继承了Iterator的思想,并提供了对List进行双向遍历的方法。List的功能 List的基本用法事相当将但的。虽然绝大多数时候,你只是用add()加对象,用get()取对象,用iterator()获取这个序列的Iterator
ArrayList集合
使用数组的方式来存储数据,此数组元
素数大于实际存储的数据以便增加和插入元素, 它允许直接按序
号索引元素, 但是插入元素要涉及数组元素移动等内存操作, 所以索
引数据快而插入数据慢 (就是查询快,增删改慢,因为是数组)
LinkedList集合
LinkedList使用双向链表
实现存储, 按序号索引数据需要进行前向或后向遍历, 但是插入数据
时只需要记录本项的前后项即可,所以插入速度较快。
(就是查询慢,增删改快,因为是数组)
Vector
Vector和ArrayList一样使用数组的方式来存储数据区别是Vector 由于使用了 synchronized 方法(线程安全) ,通常性能上较 ArrayList 差
(相对于ArrayList性能差,但是线程安全)
*以上是比较常用的list集合 *
SET集合
Set集合的基本特征是不记录添加顺序 (就是无序) 但是不允许重复
如果通过add方法添加已经有了的数据返回结果会是失败
HashSet类
HashSet按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能。底层数据结构是哈希表。HashSet是Set接口的典型实现,大多数时候使用Set集合时就是使用这个实现类
Map集合
Map保存键值对(key-value pair)映射,映射关系可以是一对一或多对一
Map集合的元素不能重复(是元素的key值不能重复)
HashMap
HashMap的数据结构是基于数组和链表的。(以数组存储元素,如有hash相同的元素,在数组结构中,创建链表结构,再把hash相同的元素放到链表的下一个节点)它是线程不安全部的
Hashtable
Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对
Hashtable也是JDK1.0引入的类,是线程安全的,能用于多线程环境中。
Hashtable同样实现了Serializable接口,它支持序列化,实现了Cloneable接口,能被克隆。
Queue
Queue用于模拟队列这种数据结构。队列通常是指“先进先出(FIFO)”的容器。队列的头部保存在队列中存放时间最长的元素,尾部保存存放时间最短的元素。新元素插入到队列的尾部,取出元素会返回队列头部的元素。通常,队列不允许随机访问队列中的元素。(想了解详细的朋友可以参照以下链接)
https://www.cnblogs.com/mercuryli/p/4636231.html
以后上就是比较常用的集合了
来源:CSDN
作者:qq_44129934
链接:https://blog.csdn.net/qq_44129934/article/details/104044157