Java 8-使用流

时间:2019-04-02 02:14:54

标签: java-8 java-stream

我有一个列表和映射,我需要首先迭代列表,在该循环内,我需要访问映射以形成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);
        }

1 个答案:

答案 0 :(得分:4)

您可以这样做

String resultStr = destTabs.stream()
    .filter(s -> destTabMap.get(s) != null)
    .map(s -> s + "  :  " + destTabMap.get(s))
    .collect(Collectors.joining("\n"));