【发布时间】:2013-06-12 22:19:42
【问题描述】:
我正在寻找一种在 Java 中直接访问包含给定对象的列表中的对象的方法。
我的意思是这样的
List<ObjectA> list = new ArrayList<ObjectA>();
Objectb objb = new ObjectB();
list.add(new ObjectA(objb, new ObjectB()));
ObjectA containsObjB;
boolean gotit= false;
for(ObjectA a: list)
{
for(ObjectB pObjB: a.getObjBs())
{
if(pObjB.equals(objb)
{
containsObjB = a;
gotit = true;
break;
}
if(gotit) break;
}
}
这将是一个漫长的过程,但由于此操作对时间非常关键,我想知道是否有可能映射列表以便我可以立即访问正确的 ObjectA。
不确定这是否可能,如果没有任何建议如何使其更快/更快,欢迎提出。
问候 塞巴斯蒂安
【问题讨论】:
-
时间紧迫是一回事;存储的对象数量如何?即,你能负担得起额外的存储空间吗?
ObjectA类的两个对象可以包含ObjectB的等效实例吗?如果是,在这种情况下应该发生什么?您如何定义ObjectB实例的等价性? -
你研究过哈希图吗?如果时间如此紧迫?
-
你在那里实现了一个二维矩阵...... O(1) 是不可能的
标签: java performance arraylist