使用嵌套流连接

时间:2017-03-03 12:56:27

标签: java lambda java-8 java-stream

我有两个字符串,列表类别和列表选项列表,我的目标是将这两个列表的内容连接为 -

List<String> categories = Arrays.asList(new String[]{"Cat-1" , "Cat-2", "Cat-3"});
List<String> choices = Arrays.asList(new String[]{"Choice-1" , "Choice-2", "Choice-3"});
List<String> result = new ArrayList<>(categories.size() * choices.size());
for (String cat : categories) {
    for (String choice: choices) {
        result.add(cat + ':' + choice);
    }
}

如何使用java Streams实现它。

1 个答案:

答案 0 :(得分:8)

您可以在这里使用简单的平面地图:

 categories.stream()
          .flatMap(left -> choices.stream().map(right -> left + ":" + right))
          .collect(Collectors.toList())