在java lambda中将每个转换为流

时间:2017-07-14 09:45:09

标签: java lambda

我有以下表达式

Map<String, String> institutionList = new LinkedHashMap<String, String>();
institutionService.list().forEach(institution -> institutionList.put(institution.getCode(),institution.getName()));

我试过以下。

institutionService.list().stream().collect(Collectors.toMap(‌​Institution::getCode‌​, Institution::getName));

enter image description here

enter image description here

但仍然是错误。如何将其转换为stream()&amp; map()与lambda?

1 个答案:

答案 0 :(得分:0)

一个正常工作的例子:

Map<String, String> p = new HashMap<String, String>();
List<String> values = new ArrayList<String>(Arrays.asList("2", "4", "1"));
p = values.stream().collect(Collectors.toMap(String::toString, String::toString));
System.out.println(p);

结果

{1=1, 2=2, 4=4}

如果我们将其转移到您的问题,代码可能如下所示:

我有以下表达式

Map<String, String> institutionList = new LinkedHashMap<String, String>();
institutionList = institutionService.list().stream().collect(Collectors.toMap(‌​Institution::getCode‌​, Institution::getName));

在这种情况下,我假设您的服务提供了类Institution

的值