面试题-List和Set的区别
上周末面试被问到List和Set的区别,支支吾吾答不上(之前没有用过Set,学过却忘了),写个文章补一下。
本来想直接写一篇文章复习整个Collection Framework的,后来发现要写完可以变成一本书……(其实是水平不够)
Set:
一个不包含重复元素的 collection。
更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。
事实上最常用的Set接口的实现类HashSet,底层是使用HashMap实现的,元素是HashMap的Key,而Value是一个私有的静态的Object对象。
HashSet有一个addAll方法,可以用来给ArrayList去重(阿里代码规约也有提到):
1 | public static void main(String[] args) { |
面试题-List和Set的区别