当前位置: 首页 > 知识库问答 >
问题:

如何在出列中查找并返回对象?

有耀
2023-03-14

我正在使用一个双端队列(java.util.Dequeue),希望在队列中找到一个对象并返回它。

我目前正在使用contains()方法检查队列是否包含对象,但不知道如何获取找到的对象的实际实例。正在搜索的实例不是同一个实例,因为我正在重写equals()方法来测试类变量子集的相等性。

如果不可能使用退出来做到这一点,那么我应该用什么来代替呢?我需要将对象推送到列表的两端,并从一开始就将其删除。显然能够搜索一个对象并得到它的实例化。

共有3个答案

华英睿
2023-03-14

您可以使用一个LinkedList,它实现了Deque。然后你可以做:

Deque<Object> queue = new LinkedList<>();
// ...
int index = (LinkedList<Object> queue).indexOf(obj);
if (index != -1)
    (LinkedList<Object> queue).get(index);
养焱
2023-03-14

如果您希望删除正在搜索的对象,我不太清楚,但是,一个可能的解决方案是获得一个迭代器,然后遍历列表并手动执行相等性检查。

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
}
卫高谊
2023-03-14

(只是为了好玩)

如果您想通过基于索引的迭代(lafor(inti=0;i

import java.util.Deque;
import java.util.LinkedList;
import java.util.List;

import static java.util.Arrays.asList;

public class Main {
    public static void main(String[] args) {
        foo(new LinkedList<>(asList("this", "is", "a", "test")));
        foo(new LinkedList<>(asList(2, 3, 5, 7, 11, 13)));
    }

    public static <E, Delist extends Deque<E> & List<E>> void foo(Delist message) {
        System.out.println(message.get(1) + " " + message.getFirst() + " " + message.get(2) + " " + message.getLast());
    }
}

 类似资料:
  • 问题内容: 如何获取使用SQL Server的SQL查询返回的列数? 例如,如果我有如下查询: 它应该返回表A1中的总列数+表A2中的总列数。但是查询可能会更复杂。 问题答案: 这是一种方法: 您可以通过创建视图来执行类似的操作。

  • 问题内容: 经过15年的VB6和MySql之后,我对node和mongo还是陌生的。我确定这不是我的最终程序要使用的东西,但是我需要对如何在另一个模块中调用函数并返回结果有一个基本的了解。 我希望模块具有打开数据库,在集合中查找并返回结果的功能。我可能还想在该模块中为其他集合添加更多功能。现在,我需要它尽可能简单,以后可以添加错误处理程序等。我花了几天的时间在函数周围尝试不同的方法,module.

  • 我有以下模式: 模式反映了一个事实,即我必须返回一个对象。然而,我不能总是这样做,有时我需要返回null。例如,如果我向数据库发出请求,它将返回return object或null(如果找不到用户)。 在我的GraphQL模式中,我为特定字段设置了类型。如果我试图返回一个不同于我设置的类型,我会得到一个错误。如何允许字段返回对象或null?

  • 我正在做一个用Spring框架制作的项目。我已经多年没有接触过Java了,这对我来说都是全新的。该项目具有以下UI控制器,显示产品信息: 为了配合这个控制器,我有一个html模板: 当没有产品时——这意味着如果我的

  • 我有一张物品清单。我需要从物品列表中找出最小数量。但如果有领带,那么就需要找到年龄最小的。如何使用Java8实现它?

  • 问题内容: 我在我的项目中使用spring data JPA。我正在玩数百万条唱片。我有一个要求,我必须获取各种表的数据并构建一个对象,然后将其绘制在UI上。现在如何实现我的Spring数据存储库。我读过它可以通过命名本机查询来实现。 如果命名的本机查询未返回实体或实体列表,则可以使用@SqlResultSetMapping批注将查询结果映射到正确的返回类型。 但是,当我尝试使用它时,将采用另一个