Предположим, у меня есть класс , содержащий Список, например.Что такое java 8, эквивалентный преобразованию Guava'sAndConcat?
public static class ListHolder {
List<String> list = new ArrayList<>();
public ListHolder(final List<String> list) {
this.list = list;
}
public List<String> getList() {
return list;
}
}
Давайте, кроме того, предположим, у меня есть весь список экземпляров этого класса:
ListHolder listHolder1 = new ListHolder(Arrays.asList("String 1", "String 2"));
ListHolder listHolder2 = new ListHolder(Arrays.asList("String 3", "String 4"));
List<ListHolder> holders = Arrays.asList(listHolder1, listHolder2);
А теперь мне нужно экстракте все строки, чтобы получить список строк, содержащий все строки из всех случаи, например:
[String 1, String 2, String 3, String 4]
С гуавы это будет выглядеть так:
List<String> allString = FluentIterable
.from(holders)
.transformAndConcat(
new Function<ListHolder, List<String>>() {
@Override
public List<String> apply(final ListHolder listHolder) {
return listHolder.getList();
}
}
).toList();
Мой вопрос как я могу добиться того же с Java 8 потока API?
или '.map (ListHolder :: GetList) .flatMap (Список :: поток)' – assylias