java之List、Set、Map、Queue

一、List相关操作

1、List是有序的。

2、线性表每个元素都存在最多唯一的一个元素,线性表包含顺序表(ArrayList)和链表(LinkedList)。

3、LinkedList双向链表有上一个、下一个元素,1.2是循环的环路操作,从1.7之后变成非循环双向列表。

4、LinkedList从JDK1.2开始存储的每一个元素是Entry对象,在1.7之后则使用Node元素。

5、Stack(栈)是先进后出,继承Vector。

6、Queue(队列)是先进先出。

7、ArrayList提供带初始化容量的有参数构造方法,还有一个接收Collection的有参数构造方法,而LinkedList只提供了一个接收Collection的有参数构造方法

8、LinkedList在添加元素的时候,next指向下一个元素,previous指向前一个元素,本身element元素值指向设置的数据。

二、Set相关操作

1、Set不允许重复元素,元素无序(不是按照添加顺序依次存储数据)

2、HashSet

3、SortedSet(子类TreeSet)和SortedMap(TreesMap)自然排序集合

4、Arrays和Collections类的使用

5、Collections的reverseOrder()反序列操作,sort()操作,shuffle()乱序,min()和max()获取最小值、最大值

三、Map相关操作

1、key唯一存在,不允许重复,value可以重复,HashSet和HashMap不保证顺序存储。

2、Map.entry()所有元素存储集合,map.Entrykey个数和map.EntryValue格式不一定相等

3、map.keySet和map.values

4、hashmap 允许key null,value为null

四、HashSet和HashMap

1、HashSet底层是HashMap是实现的

2、当使用add()把对象添加到HashSet时,实际上是维护HashMap的key集合,而value都是同一个对象,HashSet用不到

3、Hash表根据hash散列函数得到一个值,用来标示存储元素的位置,如果得到结果值已经存放其他元素了,则再进行hash计算一次,排序到其它的地方,两次之后则不会再次hash,负载因子是当元素到达负载容量是,则进行容量扩充。

4、每一个元素在HashCode存储实体是Entry,如果不同的元素生成的hashcode相同,则新生成的Entry则替换换来的位置,旧的Entry被新的next属性链接。(计算机操作系统原则:最近生成的对象,在不久的将来也回去很快被使用)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值