2015-02-05 5 views
0

мне было интересно, как мы можем перебирать многоуровневый список с помощью потока API в Java 8Итерация Список Список в java8

Например,

List<List<String>> multiList = new ArrayList<>(); 
List<String> names= Arrays.asList("a","b"); 
List<String> fewMoreNames= Arrays.asList("e","f"); 
multiList.add(names); 
multiList.add(fewMoreNames); 

В соответствии с Java 8, я должен идти что-то вроде ниже

multiList.stream().... ? 

Я хотел сделать это свободно (с использованием внутренней итерации) .Any объяснения будут оценены.

+0

Что вы хотите достичь с помощью этой итерации? Трудно ответить, не зная об этом. – Eran

+0

Мне было интересно, можно или нет использовать внутренние итераторы java8 и потоки. Список List может быть очень общей структурой данных в любом программном решении. Этот вопрос генерируется из curosity :) – user2051604

+0

Конечно, это возможно, но есть много способов, которыми потоки могут использоваться для многих целей, поэтому вам нужно будет спросить более конкретный вопрос, чтобы получить ответ. – Eran

ответ

0

Получил это, это было легко. Я не смотрел на API близко. Одним из раствора

multiList .stream().forEach((x) -> x.stream().forEach(System.out::println));

+1

Предпочтительным способом является 'multiList .stream(). FlatMap (List :: stream) .forEach (System.out :: println);' как одна операция, а не несколько вложенных операций. Вы можете заметить разницу, как только вы хотите выполнить другое действие, чем 'forEach'. – Holger

Смежные вопросы