Java集合类型【学习笔记】

思考:

在这里插入图片描述


在这里插入图片描述
List:线性表
Set:集合(不能有重复元素)(key)
Map:字典(key, value)


在这里插入图片描述
ArrayList:用数组数组实现的线性表
LinkedList:用链表实现的线性表
HashSet:用哈希表实现set
TreeSet:用二叉树组的树实现set

  • (用 平衡二叉搜索树 找元素)
  • (平衡算法:红黑树)

常见问题

在这里插入图片描述
在这里插入图片描述
【思考】:
他们都是list(线性表的结构)
他们实现不同
e:element

【一句话回答】:
List是一个接口,
ArrayList和LinkedList是2个实现,
ArrayList是用数组实现的,
LinkedList是用链表实现的。


在这里插入图片描述
在这里插入图片描述
什么时候才需要用Hashtable呢?
是么时候都不需要,它只是一个遗留的产物。
线程安全的情况下用ConcurrentHashMap;
线程不安全的情况下用HashMap;
如果不允许null,在HashMap外面包一下,或者使用第三方类库提供不允许null值的Map。


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
不是。
在这里插入图片描述
在这里插入图片描述
entry满天飞


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
什么时候需要用到Entry?

  • 遍历Map里所有的值。遍历entrySet()更快。
  • 实际使用中,Entry是必须要有的,但是不想过多依赖它,因此用entrySet()返回的东西还是Set。

总结问题:

在这里插入图片描述

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值