繁体   English   中英

如何在没有唯一ID(belongsTo,hasMany)的列表中保存对象

[英]How to save objects in list without unique ID (belongsTo, hasMany)

当我有集合时,每个对象都是唯一的,但是它们属于某个parentId,我应该如何存储它?

我的主意是

  • ArrayList <MyType> objects_list; //存储这些对象
  • ArrayList <int[]> parents_list //用于存储parent_idint[] 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM