List、Set和Map区别

      Java中Collection框架,经常在面试中会被问到,比如:你用过哪些Collection框架的类啊?知道他们的区别嘛?对于应聘者怎样回答,回答的方方面面都比较全面呢,才能使得面试官满意,才能让人家觉得你确实对Collection框架很了解、很熟悉,不是临时补习的呢。今天我就对List、Set和Map进行总结,以便于小伙伴们在面试中能有条不紊,条理清晰的回答问题。

      对于这个问题,可能大家都能回答出来,都能说一些基本的看法,但是如何才能使得人家觉得你应该掌握的知识,能够给面试官一个很高的期望呢?对于面试者,我们不紧要回答出基本的知识,如果能回答的更深入点,更全面点,是不是我们和其他人的档次就拉开了呢。

      比如,我们回答这个问题的时候,首先会说:

          1. List可以有重复的对象,有序的,每个对象都带下标
          2. Set不可以有重复的对象
          3. Map是键值成对的

      对于上面的回答,你觉得自己满意嘛?话说对于应聘者会觉得这个问题简单,能回答的不错,保证没有问题。如果你是面试官呢,你会觉得这样的回答就完整了嘛,会认为面试者是充分了解Collection框架,熟悉JDK的人嘛?

      我看倒是未必!(自己看法,切勿喷粉!)

      那么怎样回答呢,才能使得面试者能有个高期望、高评价呢?

      对于这样的问题,我觉得还是靠自己的原始积累的,一方面平时要不断的去用,去做个熟练使用者;另一方面还要自己多去挖掘其背后的原理,比如JDK源码啊,是不是要经常的去看下呢,我觉得只有自己不断的去发现,去挖掘,好多底层原理才能深刻的掌握,去做个挖掘者。使用者+挖掘者,才是我们学习的方法呀。

      上问中,如果我们再添加这样回答:

      小了说:List Set Map都是接口,前两个继承至Collection接口,Map为独立接口
      大了说:
                Set下有HashSet,LinkedHashSet,TreeSet
                List下有ArrayList,Vector,LinkedList
                Map下有Hashtable,LinkedHashMap,HashMap,TreeMap

      那么我们的回复是不是更加的全面了呢?哈哈~

      最后,学习是不断摸索的过程,要有愚公移山的毅力。他山之石,可以攻玉。希望本文对大家有所帮助!3Q

      欢迎您关注T-park技术工匠,我们是一群来自阿里巴巴的工程师,在这里将为您分享互联网技术干货。

   

  

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值