2017-03-03 62 views
3

我有一个字符串,列表分类,并列出选择的两个列表,我的目标是连接这些2所列出的内容原样级联使用嵌套流

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流实现它。

回答

8

你可以在这里使用一个简单的平面地图:

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