当我有集合时,每个对象都是唯一的,但它们属于某个parentId,我应该如何存储它?
我的想法是
ArrayList <MyType> objects_list;
//存储这些对象ArrayList <int[]> parents_list
//存储parent_id
vs int[] object_list.id
的所以连接将是
object_list.item belongsTo parents_list.item
parents_list.item hasMany object_list.item
是不是有更高效,更多Java的解决方案?
更多解释:
我有对象的集合,其中每个对象都在parent_id
内的某个变量中
我需要存储这些对象,以便我可以通过parent_id
我不能使用parent_id
作为key
的简单一个ArrayList,因为key
必须是唯一的。
那么如何存储它们,以parent_id
之类的Collection.getByParentId(parent_id)
来获取所有对象?
答案 0 :(得分:2)
与之前说过的Dave一样,将父ID存储在MyType
。
// all MyType objects
List<MyType> objects;
// This way you could track the relations
// (you would have to update this on change)
Map<Integer, List<MyType>> relations;
答案 1 :(得分:2)
尝试使用Guava的ListMultimap
ListMultimap<Integer, MyType> map = ArrayListMultimap.<Integer, MyType>create();
然后你可以这样做:
List<MyType> children = map.get(parentId);
答案 2 :(得分:1)
是;将parent_id
保留在MyType中,它所属的位置,或者不将它存储在任何地方,并在需要时使用父对象的ID(目前还不清楚你实际上想要实现的目标)。
答案 3 :(得分:1)
HashMap<Integer, ArrayList<MyObject>> myObjects = new HashMap(); // Assuming parent_id is Integer
你可以像这样访问它:
ArrayList<MyObject> myObjectsArray = myObjects.get(parent_id);