我有一个CuncurrentHasMap:
private static ConcurrentHashMap<String, Object> testParameters =
new ConcurrentHashMap<String, Object>();
Run Code Online (Sandbox Code Playgroud)
我推动(有时)具有相同键的对象,这些对象是TreeMap类型的TreeMaps(字符串,MyPrivateClass).
如何更改此put方法,以便将具有相同键的对象放在一起而不被覆盖?
public static void put(String key, Object object) {
getTestParameters().put(key, object);
}
Run Code Online (Sandbox Code Playgroud)
创建值List<Object>
(或其他一些容器/集合类型),而不是Object
:
private static ConcurrentHashMap<String, List<Object>> testParameters =
new ConcurrentHashMap<>();
Run Code Online (Sandbox Code Playgroud)
然后使用compute
而不是put
创建并添加到列表:
getTestParameters().compute(key, (k, v) -> {
if (v == null) v = new ArrayList<>();
v.add(object);
return v;
});
Run Code Online (Sandbox Code Playgroud)