我尝试从地图上填写列表。如果列表为NULL
I,我将创建一个新列表并添加一个新创建的元素,否则将该元素添加到现有列表中。
我想知道JAVA8中是否有更优雅的解决方案。任何帮助表示赞赏。
Map<String, List<MyObject>> myMap = new HashMap<>();
List<MyObject> list = myMap.get("key");
myMap.put("key", list == null ? Arrays.asList(new MyObject()) : Arrays.asList(list, new MyObject()));
假设Arrays.asList(list, new MyObject())
应该向中添加一个新MyObject
实例list
,那么可以,您可以使用Map#computeIfAbsent
来提高代码的可读性:
Map<String, List<MyObject>> myMap = new HashMap<>();
myMap.computeIfAbsent("key", key -> new ArrayList<>()).add(new MyObject());
如果"key"
中没有作为键存在Map
,则将创建到新ArrayList
实例的映射(返回)。否则,List
将通过调用来返回现有项computeIfAbsent
,从而允许您向其添加新元素。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句