2017-03-03 59 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())