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

使用Java在对象列表中查找最小数量(如果存在并列[duplicate]

呼延才俊
2023-03-14

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

class TestObject{
    private Double amount;
    private int age;
}

List<TestObject> objectList = getAllItems();
TestObject obj = objectList.stream()
            .min(Comparator
            .comparing(TestObject::getAmount))
            .get();

共有1个答案

祁永嘉
2023-03-14

要组合比较器中的两个字段,可以使用Goion链接的答案,或使用然后比较功能,如下所示:

TestObject obj = objectList
      .stream() 
      .min(Comparator.comparing(TestObject::getAmount)
                     .thenComparing(TestObject::getAge))
      .get();

 类似资料:
  • 我正在尝试编写一个方法,该方法可以在列表列表中找到对象的索引并利用并行性。这是我的代码。 当我运行以下代码时 输出类似于 换句话说,即使在找到对象之后,搜索仍在继续。不应该是短路操作吗?我错过了什么?此外,在迭代列表或锯齿数组时,利用并行性的最佳方法是什么? 编辑 按照@Sotirios回答中的想法,我得到了以下输出 请注意 即使找到答案也继续搜索。

  • 我正在使用一个双端队列(java.util.Dequeue),希望在队列中找到一个对象并返回它。 我目前正在使用方法检查队列是否包含对象,但不知道如何获取找到的对象的实际实例。正在搜索的实例不是同一个实例,因为我正在重写方法来测试类变量子集的相等性。 如果不可能使用退出来做到这一点,那么我应该用什么来代替呢?我需要将对象推送到列表的两端,并从一开始就将其删除。显然能够搜索一个对象并得到它的实例化。

  • 问题内容: 我有一个日期时间对象列表,我想找到最早的或最小的对象。其中一些日期可能在将来。 最佳方法是什么?我当时正在考虑将datetime.now()与其中的每一个进行比较。 问题答案: 最老的: 现在最年轻:

  • 让我们假设我有一个这样的类: 我有一个

  • 到目前为止,这就是我的答案,但从逻辑上讲,我的答案对于findNextCity方法似乎是错误的。此外,我甚至不知道如何处理问题的第二部分(以下)。 我应该遍历cityQueue中的每个元素,使用下一种方法计算的欧几里德距离(distbetweencies),确定哪个元素最接近当前城市(从第一个参数)。我必须忽略已经标记在堆栈中或堆栈中的城市以及当前城市本身(否则,城市将始终是离自身最近的城市!)。

  • 问题内容: 我将以说这是家庭作业为开头。我只是在寻找一些指示。我一直在为此绞尽脑汁,对于我的一生,我只是不明白。我们被要求在列表中找到最小的元素。我知道我在这里需要一个子列表,但是在那之后我不确定。任何指针都很棒。谢谢。 问题答案: 从最一般的意义上讲,递归是一个基于分解工作的概念,然后将较小的工作分派给自己的副本。为了使递归正常工作,您需要三件事: 工作细目。您如何使每个步骤变得“简单”? 递归