转换地图 在Java8中列出[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转换地图 在Java8中列出[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我有API返回需要转换为DTO的Map<String,String>

 SubjectIdAndNameDTO (id, name constructor args)
           id
           name

使用传统for循环和Map.EnterSet的当前实现。我如何使用Java8的功能来简化以下代码。

 Map<String, String> map = getSubjectIdAndNameMap();          

 // How can this code can be improved by using Java8 Stream and method references

 List<SubjectIdAndNameDTO> subIdNameDTOList = new ArrayList<>();

 for (Entry<String, String> keyset : map.entrySet()) {
        SubjectIdAndNameDTO subjectIdNameDTO = 
                 new SubjectIdAndNameDTO(keyset.getKey(), keyset.getValue());
        subIdNameDTOList.add(subjectIdNameDTO);
 }
答案

试试这个

  map.entrySet()
  .stream()
  .map(m->new SubjectIdAndNameDTO(m.getKey(), m.getValue()))
  .collect(Collectors.toList());

或者@Eugene建议使用

 ...collect(Collectors.toCollection(ArrayList::new));

也访问this答案。

以上是关于转换地图 在Java8中列出[重复]的主要内容,如果未能解决你的问题,请参考以下文章

恢复片段后android地图停止响应

如何使用Java8流将列表列表转换为单个列表[重复]

带有片段的重复 ID

片段布局不覆盖整个屏幕

Android:片段无法转换为上下文[重复]

无法使用 Java 8 将给定的本地日期转换为 GMT 日期 [重复]