我正在对对象进行分组,比下面的示例更复杂,但是我想知道是否正确?
它可行,但是是否有常用模式(最佳实践)?
Map<String, ArrayList<String>> groupedItems = new HashMap<String, ArrayList<String>>();
// Add some fruits
List fruits = new ArrayList();
fruits.add(new MyItem("Apple"));
fruits.add(new MyItem("Banana"));
groupedItems.put("fruits", fruits);
// Add some veggies
List veggies = new ArrayList();
veggies.add(new MyItem("Carrot"));
veggies.add(new MyItem("Potato"));
groupedItems.put("veggies", veggies);
// Select fruits
ArrayList fruits = groupedItems.get("fruits");
修改:请注意,它并不是基于意见的,我也不要求进行代码审查。我正在寻找一种最佳实践,因为我的方式感觉很脏。
谢谢!
答案 0 :(得分:1)
以下是将新项目添加到多图的相对干净的方法:
groupedItems.computeIfAbsent(key, k -> new ArrayList<>()).add(newItem);
答案 1 :(得分:0)
您可以为复杂的零件整体关系寻找Composite设计模式。