java - 在 Java 中实现出队

标签 java

假设我有以下代码,其中 Element 是一个类:

import java.util.*;
import java.io.*;

public class HelloWorld
{
  public static void main(String[] args)
  {
    Deque<Element> list = new LinkedList<Element>();
    Element ele3 = new Element();
    ele3.x = 3;
    ele3.y = 3;
    q.add(ele3);
  }
}

class Element {
  public int x;
  public int y;
  public String moves;
}

假设在程序运行期间,我遇到了一个 x=3 和 y=3 的元素,它的 Element.moves 比队列中的前一个元素更好。我想要的是从队列中删除最后一个并添加这个。为此,我可以使用 Dequeue 的方法 removeFirstOccurrence。由于我不知道最后一个对象(x=y=3)的名称,如何在只知道对象的 x 和 y 的情况下应用此方法?

我认为的另一个解决方案是创建一个对象数组和具有 i 值的哈希元组 (x,y),因此如果我有 (x,y),我可以知道它们属于 A[i] 对象。在这种情况下,问题是我不知道需要创建多少个对象,因此无法初始化数组。此外,如果我使用 ArrayList 或类似的东西,我无法创建一个 A[i] 对象并使用 i 引用它。

有什么想法吗?

最佳答案

查找第一个 lambda 表达式 Element with x=y=3

list.stream().filter( e -> (e.x == 3 && e.y == 3) ).findFirst().get();

关于java - 在 Java 中实现出队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57273264/

相关文章:

javassist:重命名类和字段类型

java - 使用 Byte Buddy 的检测问题

java - 如何将搜索结果全部集中在一个框中?而不是(JOptionPane单独的框)

java - 为什么 Inet*Address 类没有可见的构造函数?

java - java NIO内部是如何工作的,内部是否使用线程池?

Java 桌面 API 无法使用网络路径?

java - 有人能找出我的代码有什么问题吗?

java - 如何将文本文件发送到显示错误 "request was rejected because no multipart boundary as found"的 http 请求

java - 每当将新数据点添加到 jfreechart 中的现有数据集时,xy 折线图如何自动更新/重绘

java - 在 struts2 中处理 session 超时的最佳方法是什么