我有一个列表和映射,我需要首先迭代列表,在该循环内,我需要访问映射以形成String消息。我已经用Java 7编写了相同的代码,并且工作正常。有人可以帮忙将其转换为Java 8流。
final Map<String, String> destTabMap = ...
final List<String> destTabs = mappingList.get(destTabName);
for (int j=0; j < destTabs.size(); j++) {
String destName = destTabs.get(j);
final String fieldValue = destTabMap.get(destName);
if(fieldValue==null)
continue;
message.append(destName+" ");
message.append(":");
message.append(" "+fieldValue);
message.append("\n");
System.out.println(destName+" : "+fieldValue);
}
答案 0 :(得分:4)
您可以这样做
String resultStr = destTabs.stream()
.filter(s -> destTabMap.get(s) != null)
.map(s -> s + " : " + destTabMap.get(s))
.collect(Collectors.joining("\n"));