2015-10-09 71 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:这正是我所需要的。 –

相关问题