我正在使用双端队列 (java.util.Dequeue),并且想要在队列中查找一个对象并返回它。
我目前正在使用 contains()
方法来检查队列是否包含该对象,但不知道如何获取找到的对象的实际实例。正在搜索的实例不是同一个实例,因为我重写了equals()
方法来测试类变量子集的相等性。
如果使用出队无法做到这一点,那么我应该使用什么来代替?我需要将对象推到列表的任一端并从开头将其删除。显然能够搜索一个对象并获取其实例化。
最佳答案
我有点不清楚您是否希望删除正在搜索的对象,但是,一种可能的解决方案是获取一个迭代器,然后迭代列表并手动执行相等性检查。
Iterator<YourClass> it = yourDeque.iterator();
YourClass foundInstance = null;
while(it.hasNext()) {
YourClass obj = it.next();
if(obj.equal(theInstanceYouAreSearchingFor)) {
foundInstance = obj;
break;
}
}
if(foundInstance != null) {
yourDeque.remove(foundInstance); // if you wish to remove it as well
}
关于java - 如何在出队中查找并返回对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15834594/