java使集合无序_第三章:java基本功之常用java集合实现细节

java常用集合实现细节:

3.1 Set和Map

Set代表一种集合元素无序、集合元素不可重复的集合,Map则代表一种由多个key-value组成的集合。Map集合是Set集合的扩展。

3.1.1 Set和Map的关系

Set集合的继承体系:

e46675b5793aa1901398c92c06427f00.png

Map的集合继承体系:

5acebe962650139402787dcf78834dcb.png

Set集合和Map集合的对应关系:

Set---Map

EnumSet---EnumMap

SortedSet---SortedMap

TreeSet--- TreeMap

NavigableSet---NavigableMap

HashSet---HashMap

LinkedHashSet---LinkedHashMap

Map集合的特征:所有key不能重复,key之间没有顺序。如果将Map集合的key集中起来,这些key就组成了一个Set集合。Map集合提供了    Set keySet()来返回所有key组成的Set集合。 即Map集合的所有key将具有Set集合的所有特征,只要把Map的所有key集中起来,它就是一个Set集合,从而实现了从Map到key的转换。

还可以实现从Set到Map的扩展:对于Map而言,相当于每个元素都是key-value对的Set的集合。

Map集合的另一种理解:如果把Map集合的value当成key的"附属物",那么Map集合在保存key-value对时只考虑key即可。

Map集合本质上是一个关联数组。

把Set扩展成Map:新增定义一个SimpleEntry类,该类代表一个key-value对;当Set集合的集合元素都是SimpleEntry对象时,该Set集合就能被当成Map使用。

例:将一个Set集合扩展成Map集合

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值