2015-10-09 2 views
-3

У меня есть Set<String>, который я хочу преобразовать в Map<String, List<NameAndType>, где каждая запись в моем исходном списке является ключом для каждой записи, а значение вычисляется с использованием дорогостоящей функции.Как работать с Java 8 Streams

Set<String> allTables = getAllTablesInternal(); 
allTables.parallelStream().<...?> 

Существует expensive_function, который возвращает List<NameAndType> по заданному tableName (String). Я хочу написать функцию сбора, которая будет собираться на карту.

+1

Что должно быть значение, связанное с каждым ключом? – Tunaki

+0

Я упомянул об этом в моем вопросе. каждый из tableName (каждый элемент набора) –

+1

Я говорю о значении. Как вычислять значение с учетом «списка »? – Tunaki

ответ

1

Вы можете использовать toMap

Map<String, List<NameAndType>> map = 
      allTables.parallelStream() 
        .collect(Collectors.toMap(k -> k, k -> expensive_function(k))); 
+1

Как вы можете ответить, когда нет даже вопроса? Что такое lookupTable и как оно соотносится с дорогой_функцией? – Tunaki

+1

@ Tunaki Я предполагаю, что вопрос таков; «Как [получить это] работать с потоками Java 8?» –

+0

@Peter Lawrey: Это именно то, что мне нужно. –

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