java集合(详解)

java集合详解

什么是集合

集合是指具有某种特定性质的具体的或抽象的对象汇总而成的集体,有时集合也称之为容器,java中在util包下存放了所有的基本集合
在这里插入图片描述

集合的分类

集合大致分为List,Set,Map,Queue
List为一种有序可重复的接口集合
Set为一种无序不重复的接口集合
Map是采用键值对形式的接口集合
Queue 队列,先进先出

List

1.ArrayList:底层是数组,查询效率高
2.LinkedList:底层是双向链表,增删效率高
3.Vector:线程安全的,效率较慢因为他的方法大多采用synchronized进行修饰,也是采用Object数组进行存储
4.CopyOnWriteArrayList:适用于读和写多的并发场景

set

1.HashSet :使用HashMapkey实现
2.linkedHashSet:增删效率高
3.TreeSet:增删效率高,采用红黑树实现
4.CopyOnWriteArrayList:适用于读和写多的并发场景

Map

Map接口定义了键值对集合的基本方法,其中的存取方法(put,get)
Map的主要实现类有:HashMap与TreeMap,其中HashMap 类按哈希算法来存取键对象,而 TreeMap 类可以对键对象进行排序
1.HashMap
在JDK8之前HshMap是采用数组加链表进行存储的
在JDK8之后HahMap是采用数组加链表加红黑树进行存储的
HahMap的默认参数为长度16与加载因子为0.75,而现在他的底层实际有两种数据结构一种是链表形式的一种为红黑树
在这里插入图片描述当16个空间不足以存储(会判断元素数量是否大于HashMap的阈值如果大于则扩容)这时,就会调用resize ()方法通过加载因子扩容,最大是为1073741824个空间。
https://blog.csdn.net/weixin_43487853/article/details/129497402?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22129497402%22%2C%22source%22%3A%22weixin_43487853%22%7D
2.TreeMap

ArrayList 底层是数组形式,优点遍历快,插入删除慢

       JDK1.7以后初始数组容量为0,在正真添加数据到数组中时,才会调用add方法并分配容量,按照1.5的比例去扩容,初始10个数组,当给到11时。就会扩容到15,,22等
	   jdk1.6中,误餐构造,初始容量为10,1.5倍去扩容

LinkedList 底层是双向链表,遍历慢,插入删除快

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值