美文网首页
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