0
這裏我將兩個不同的列表轉換爲單個映射。之前我使用正常的循環來做到這一點。由於性能問題,現在我正在使用流。如何在使用流時爲對象列表使用同一個mapObject。使用Java 8流時更新現有的Map對象
final Set<Object1> objects1 = new HashSet<Object1>();
final Set<Object2> objects2 = new HashSet<Object2>();
final Map<Id, Object> objectMap = new HashMap<Id, Object>();
private void addObjectsToMap(Map<Id, Object> objectMap, final Collection<? extends Object> objects)
{
// used this operation earlier to convert
for (final Object object : objects)
{
objectMap.put(object.getId(), object);
}
// using this one now
objectMap = objects.parallelStream().collect(
Collectors.toMap(object -> object.getId(), object -> object));
}
addObjectsToMap(objectMap, objects1);
addObjectsToMap(objectMap, objects2);
你有*性能問題*在普通的循環?你有多少物品? – Kayaman
它從千變量到百萬個對象 –
在你的方法中接受可變參數,並使用flatMap將兩個集合轉換爲一個流應該工作 –