一、一个萝卜一个坑 —— List
- List 底层就是个 Object[],所以逻辑上是挨在一起的(连续);
- 你们这几个萝卜都是有序号的,叫到号出列!
二、暗度陈仓 —— Set
public boolean add(E e){
return map.put(e ,PRESENT) == null;
}
你去看看 Set 的两个实现类(TreeSet、HashSet)源码,就会发现底层存储结构都是用的map,把 set 的值放在 map 的 key 里的,value 是一个共用的 object 对象。
所以 Set 的特点也就是 Map 的 Key 的特点:
- map 中 key 是不允许重复的,这样 Set 中的值也不能重复了。
- map 的 key 是无序存放的,Set 也就无序。
三、我不管数据存哪了,给你个通行证,你把它给我找出来! —— Map
- 数据和通行证有着映射关系;
- 既然是通行证,那就不可重复(键不重复),不然 A 取了 B 的数据多尴尬?
网友评论