Java核心类库—集合框架—Map、List和Set之间的关系
如果集合前缀相同,说明底层算法是一样的。
现在HashSet与HashMap来研究
通过阅读代码发现相同的算法Set底层用的是相同算法的Map
把Set的集合对象作为Map的key,在使用一个Object常量作为value
因此:Map中所有的key就是一个Set集合。
选用哪一种容器取决于每一种容器的存储特点以及当前业务需求
List:单一元素集合
允许元素重复/记录元素的添加顺序
Set:单一元素集合
不允许元素重复/不记录元素的添加顺序
既不重复,又要保证先后顺序:LinkedHashSet
Map:双元素集合,如果存储数据的时候,还得给数据取一个名称,此时考虑用Map。
List和Set以及Map之间相互转换问题
List<String> list = new ArrayList<>();
把List转换为Set:
Set<String> set= new HashSet<>(list);//重复的元素会消除
把Set转换为List:
List<String> list = new ArrayList<>(set);
Map不能直接转换为List或者Set(但是Map中的方法可以转换)