2015-10-09 118 views
-3

我有一個Set<String>,我想將其轉換爲Map<String, List<NameAndType>,其中我的源列表中的每個條目都是每個條目的關鍵字,並且使用昂貴的函數計算該值。如何使用Java 8 Streams

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

有一個expensive_function它返回給定tableName(String)將List<NameAndType>。我想要做的是寫一個收集功能,將收集到一個地圖。

+1

應該是什麼值相關聯的每個鍵? – Tunaki

+0

我在我的問題中提到過它。每個tableName(集合中的每個元素) –

+1

我正在談論價值。給定一個「List 」這個值應該如何計算? – Tunaki

回答

1

您可以使用toMap

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

如果甚至沒有問題,你怎麼回答? lookupTable是什麼,它與expensive_function有什麼關係? – Tunaki

+1

@Tunaki我假設問題是; 「如何[讓這個]與Java 8 Streams一起工作?」 –

+0

@Peter Lawrey:這正是我所需要的。 –

相關問題