java - 如何在出队中查找并返回对象?

标签 java data-structures collections queue deque

我正在使用双端队列 (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/

相关文章:

java - 在 Android 中以编程方式配置 PPTP/L2TP VPN

java - 有用的速度小工具

c++ - 利用 BST 的优先级队列 - 有趣的输出

algorithm - 动态成就系统算法/设计

java - 按值查询Guava表

javax.net.ssl.SSLHandshakeException : sun. 安全.validator.ValidatorException

java - 接口(interface)模拟gevis空指针异常

python - 链表总是比 python 列表慢吗?

java - 如何迭代 TreeMap<String,Map<String,String>> 以及如何打印相同的所有键和值

java - 为什么在 java.util.Collections 中声明静态 java.util.Collections.fill() 方法而不是在 java.util.AbstractList 中声明实例方法?