java collection集合

集合:用于存储对象的容器。集合中可以存储任意类型的对象,长度可变。

集合和数组的比较

  • 集合和数组都是存储对象的容器,不同的是,数组可以存储基本数据类型(int、short、long、char、Boolean、double、float、byte),集合只能存储任意类型的对象。
  • 数组长度是固定的,集合的长度是可变的(根据加载因子和扩容增量来完成扩容)。

数组操作复杂,在java中可用方法少,集合操作简单,有很多操作方法。

对于集合,顶层都实现了Iterable接口,表明集合都是可迭代的,可以视同iterable()方法获取集合对于的迭代器,也可以使用增强的for循环进行迭代。

1、Collection:collection为所以集合的定级接口,继承了Iterable类,表明所有集合类都是可迭代的。
[图片]

2、List: 实现了Collection接口,存储的数据是有序的、可重复的,可通过索引进行元素访问。
在这里插入图片描述
3、ArrayList:底层实现为数组,线程不安全,查找效率高,增删效率低。
在这里插入图片描述
4、Vector:由下图可知vector和ArrayList实现原理相同,但是vector是线程安全的(synchronized),效率略低于ArrayList。
在这里插入图片描述
5、Stack:继承Vector,是一个先进后出的栈。
在这里插入图片描述
6、LinkedList:底层实现为双向链表,进行元素的增删效率高,查询效率低。
在这里插入图片描述
7、Queue:队列,先进先出(FIFO)
在这里插入图片描述
8、Set:存储的元素是无序的、唯一的。在程序运行中,如果使用add添加一个已经存在的元素,将返回false。
在这里插入图片描述
9、HashSet:底层实现为哈希表(链表+数组),线程不安全,查找效率高,增删效率低,通过元素的hashCode和equels方法保证了元素的唯一性。
在这里插入图片描述
10、TreeSet:底层实现为二叉树,线程不安全,可对元素进行自动排序,保证元素唯一性的方式是compareTo方法返回0。
在这里插入图片描述
12、LinkedHashSet:底层实现为链表和哈希表,线程不安全,存储的元素时有序的、唯一的,通过元素的hashCode和equels方法保证了元素的唯一性。
在这里插入图片描述
Arrays:类Arrays为集合的工具类,可使用该类的方法对集合进行排序、转换为list等操作。

Collections:为所有直接或间接实现了Collection接口的集合类的工具类,该类封装了对集合的各种操作,如排序、反转、替换等操作。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值