Java 如何保存列表中没有唯一ID的对象(belongsTo,hasMany)
当我有一个集合,其中每个对象都是唯一的,但它们属于某个父ID时,我应该如何存储它 我的想法是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的解决方案吗 再解释一
arraylistobjects\u列表代码>//用于存储这些对象
//存储ArrayList parents\u list
vsparent\u id
int[]object\u list.id
object\u list.item属于父项\u list.item
parents\u list.item有许多对象\u list.item
再解释一下: 我有一个对象集合,其中每个对象都有
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这是正确的,它可以解决检查某个键是否已经存在列表并为您创建列表的麻烦。