2020-08-02 谈谈List,Set,Map的区别?

2020-08-03  本文已影响0人  fjasmin

一、一个萝卜一个坑 —— List

  1. List 底层就是个 Object[],所以逻辑上是挨在一起的(连续);
  2. 你们这几个萝卜都是有序号的,叫到号出列!

二、暗度陈仓 —— Set

public boolean add(E e){
  return map.put(e ,PRESENT)  == null;
}

你去看看 Set 的两个实现类(TreeSet、HashSet)源码,就会发现底层存储结构都是用的map,把 set 的值放在 map 的 key 里的,value 是一个共用的 object 对象。

所以 Set 的特点也就是 Map 的 Key 的特点:

  1. map 中 key 是不允许重复的,这样 Set 中的值也不能重复了
  2. map 的 key 是无序存放的,Set 也就无序

三、我不管数据存哪了,给你个通行证,你把它给我找出来! —— Map

  1. 数据和通行证有着映射关系;
  2. 既然是通行证,那就不可重复(键不重复),不然 A 取了 B 的数据多尴尬?
上一篇下一篇

猜你喜欢

热点阅读