HashSet底层是用HashMap实现的,TreeSet底层是TreeMap实现的,那么Set就是依赖于Map实现的,Map依赖于一个集合是它遍历,那么Set存不存在都不影响Map的使用,请大牛们帮小白解释一下Set存在的意义是什么?谢谢

解决方案 »

  1.   

    set可以做去重,这个还真很少用
      

  2.   

    如果你直接用hashmap替代hashset,value用一个固定值其实也没毛病,也可以正常使用。
    只是对于理解来说,直接用hashset肯定更好理解一点,而用hashmap替代的话,虽然功能实现没问题,但是理解起来总感觉有点怪。
      

  3.   

    但是总感觉这种设计很鸡肋从set和map这两个接口来看,设计是没问题的。只是hashset的实现方式有点诡异,在最开始接触这些类的时候,以为hashmap是基于hashset实现的,后来看了源码之后,也觉得很怪,但是就是这么实现的,至于为什么要这样实现,我也不明白。
      

  4.   

    但是总感觉这种设计很鸡肋从set和map这两个接口来看,设计是没问题的。只是hashset的实现方式有点诡异,在最开始接触这些类的时候,以为hashmap是基于hashset实现的,后来看了源码之后,也觉得很怪,但是就是这么实现的,至于为什么要这样实现,我也不明白。
    谢谢您的解答,受益匪浅