Java:按类别访问分组对象的正确存储方式是什么?

时间:2018-12-20 07:00:23

标签: java sorting object grouping

我正在对对象进行分组,比下面的示例更复杂,但是我想知道是否正确?

它可行,但是是否有常用模式(最佳实践)?

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");

修改:请注意,它并不是基于意见的,我也不要求进行代码审查。我正在寻找一种最佳实践,因为我的方式感觉很脏。

谢谢!

2 个答案:

答案 0 :(得分:1)

以下是将新项目添加到多图的相对干净的方法:

groupedItems.computeIfAbsent(key, k -> new ArrayList<>()).add(newItem);

答案 1 :(得分:0)

您可以为复杂的零件整体关系寻找Composite设计模式。