![](/img/trans.png)
[英]How to get specific object from list of objects by using unique id of that object in java?
[英]How to save objects in list without unique ID (belongsTo, hasMany)
当我有集合时,每个对象都是唯一的,但是它们属于某个parentId,我应该如何存储它?
我的主意是
ArrayList <MyType> objects_list;
//存储这些对象 ArrayList <int[]> parents_list
//用于存储parent_id
与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)
呢?
就像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;
尝试使用番石榴的ListMultimap
ListMultimap<Integer, MyType> map = ArrayListMultimap.<Integer, MyType>create();
然后,您可以执行以下操作:
List<MyType> children = map.get(parentId);
是; 将parent_id
保留在MyType所属的MyType中,或者不将其存储在任何地方,并在需要时使用父对象的ID(尚不清楚您实际要完成的措辞如何)。
HashMap<Integer, ArrayList<MyObject>> myObjects = new HashMap(); // Assuming parent_id is Integer
您可以像这样访问它:
ArrayList<MyObject> myObjectsArray = myObjects.get(parent_id);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.