美文网首页
2020-08-02 谈谈List,Set,Map的区别?

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

作者: fjasmin | 来源:发表于2020-08-03 19:15 被阅读0次

一、一个萝卜一个坑 —— 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 的数据多尴尬?

相关文章

网友评论

      本文标题:2020-08-02 谈谈List,Set,Map的区别?

      本文链接:https://www.haomeiwen.com/subject/fkwmrktx.html