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

Java 如何保存列表中没有唯一ID的对象(belongsTo,hasMany),java,android,collections,has-many,belongs-to,Java,Android,Collections,Has Many,Belongs To,当我有一个集合,其中每个对象都是唯一的,但它们属于某个父ID时,我应该如何存储它 我的想法是 arraylistobjects\u列表//用于存储这些对象 ArrayList parents\u list//存储parent\u idvsint[]object\u list.id 因此,连接将是 object\u list.item属于父项\u list.item parents\u list.item有许多对象\u list.item 难道没有更高效、更Java的解决方案吗 再解释一

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

我的想法是

  • arraylistobjects\u列表//用于存储这些对象
  • ArrayList parents\u list
    //存储
    parent\u id
    vs
    int[]object\u list.id
因此,连接将是

  • object\u list.item属于父项\u list.item
  • parents\u list.item有许多对象\u list.item
难道没有更高效、更Java的解决方案吗


再解释一下:

我有一个对象集合,其中每个对象都有
parent\u id
中的某个变量。
我需要存储这些对象,这样我就可以根据它们的
parent\u id

我不能将带有
parent\u id
的简单数组列表用作
key
,因为
key
必须是唯一的


那么如何存储它们,通过它们的
parent\u id
Collection.getByParentId(parent\u id)

是;将父对象id保存在MyType中它所属的位置,或者不要将其存储在任何地方,并在需要时使用父对象的id(不清楚您实际想要实现什么)。

是;将父对象id保存在MyType中它所属的位置,或者不将其存储在任何地方,并在需要时使用父对象的id(不清楚您实际试图实现的目标)。

HashMap myObjects=new HashMap();//假设parent_id为整数
您可以这样访问它:

ArrayList<MyObject> myObjectsArray = myObjects.get(parent_id);
ArrayList myObjectsArray=myObjects.get(父对象id);
HashMap myObjects=newhashmap();//假设parent_id为整数
您可以这样访问它:

ArrayList<MyObject> myObjectsArray = myObjects.get(parent_id);
ArrayList myObjectsArray=myObjects.get(父对象id);
如前所述,将父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;
//所有MyType对象
列出对象;
//这样你就可以追踪关系了
//(您必须在更改时更新此内容)
地图关系;
如前所述,将父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;
//所有MyType对象
列出对象;
//这样你就可以追踪关系了
//(您必须在更改时更新此内容)
地图关系;
试着用番石榴汁

ListMultimap=ArrayListMultimap.create();
然后你可以做:

List<MyType> children = map.get(parentId);
List children=map.get(parentId);
试着用番石榴汁

ListMultimap=ArrayListMultimap.create();
然后你可以做:

List<MyType> children = map.get(parentId);
List children=map.get(parentId);

还不够清楚你想要实现什么你可以更具体一点吗?@LalitPoptani补充解释说在这里使用地图是个好主意…还不够清楚你想要实现什么你可以更具体一点吗?@LalitPoptani补充解释说在这里使用地图是个好主意…我必须完全清楚失明的当你写下来的时候,它是如此的明显。谢谢我必须完全失明!当你写下来的时候,它是如此的明显。谢谢番石榴的多重地图实现了地图。现在很好,我会记住你的建议。基本上,它应该在内部执行与我建议的完全相同的操作…谢谢,在这种情况下,我最好使用自己的实现,而不是某些库。@Knickedi这是正确的,它可以解决检查某个键的列表是否已经存在并为您创建的麻烦。Guava的MultiMap实现了Map。很好,我会记住你的建议。基本上,它应该在内部执行与我建议的完全相同的操作……谢谢,在这种情况下,我最好使用自己的实现,而不是使用某个库。@Knickedi这是正确的,它可以解决检查某个键是否已经存在列表并为您创建列表的麻烦。