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中的方法可以转换)

 

posted @ 2017-03-19 19:58  wenxudong  阅读(213)  评论(0编辑  收藏  举报