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

Java中列表的最大值

史钊
2023-03-14

我正试图通过应用筛选器获得最高值

我有一个对象,它包含一个团队对象和一个卡片列表。所以我需要从卡权重属性中的卡列表中获得最高值,这里的队伍是A,并返回玩家。

public class Player {
  private String name;
  private List<Card> cards;
  private Team team;
  // getters and setters
}

public class Team {
  private int id;
  private int points;
  // getters and setters
}

public class Card {
  private int weightCard;
  // getters and setters
}
int maxPointsTeamA = players
    .stream()
    .filter( x -> x.getTeam().equals(teamA))
    .map(n -> n.getCards()
    .stream()
    .map( c -> c.getWeigthCard()).max(Comparator.naturalOrder()));

错误:

Type mismatch: cannot convert from Stream<Object> to int

请帮帮我,这是学术工作用的

共有1个答案

段晨
2023-03-14

首先,将map调用替换为maptoint。那么就不需要比较器.NaturalOrder()

其次,您的第一个映射调用包含以下lambda:

N->N.GetCards().Stream().Map(C->c.GetWeightCard())

int maxPointsTeamA = players
            .stream()
            .filter(x -> x.getTeam().equals(teamA))
            .flatMap(n -> n.getCards().stream())
            .mapToInt(c -> c.getWeightCard())
            .max()
            .orElse(0);

编辑:啊,是的,我忘了max()返回一个optionalint;修好了。

 类似资料:
  • 问题内容: 因此,我有一个包含几个列表的列表,这些列表都首先包含三个字符串,然后是一个浮点数,例如: 如何制作一个返回最大值的函数(此处为9.1931)?我试过了 但这只是给我一个清单。 编辑:此外,以任何方式我可以获取值来自何处的索引?喜欢,来自哪个子列表? 问题答案: 循环浏览外部列表,然后选择每个子列表的最后一个元素: 最好将所有与函数相关的变量保留在范围内(将列表作为参数传递,并且不要通过

  • 我有下面的代码,其中计算最小和最大订单项目从列表并按预期工作。我想知道是否可以进一步重构/改进,使其更优化和高性能地处理数千或订单列表。 我故意不做 Collections.min(itemFrequencyMap.values()) 和 因为它需要对所有值进行两次迭代,然后再次循环遍历 以查找值和的条目。

  • 问题内容: 我有以下格式的多维列表: 如何获得所有子列表的第三个值的最大值。用伪代码: 我知道这可以通过遍历列表并将第三个值提取到新列表中,然后简单地执行来完成,但是我想知道是否可以使用lambda或列表理解来完成? 问题答案: 只需与生成器表达式一起使用: 另外,不要命名您的变量,而是要隐藏类型。

  • 现在,我希望获得和值最小的属性,以及其他和值最大的列表。 我知道减少... 但是是否可以用最小的获得和最大的获得? 如何获得这些列表?

  • 问题内容: 是否有一种简单的方法可以从对象数组列表中的一个对象的字段中获取最大值? 例如,出于下面的对象,我希望获得“值”字段的最高值。 我想从中获取ValuePairs.mValue的最大值的示例arraylist。 创建存储在arraylist中的对象的类: 我正在通过做类似的事情来获取mValue的最大值(我知道这是不正确的): dMax应该为50.00。 任何帮助表示赞赏。谢谢! 问题答案

  • 问题内容: 我将字符串列表传递给我的查询(编写的SQL查询)以获取所需的数据。但是我得到了这个例外: ora-01795列表中的最大表达式数为1000 我检查了传递给查询IN参数的列表中是否有1000多个条目。 问题答案: 这是查询中列表传递次数的一个Oracle限制。 您将不得不砍掉您的查询或 而是在IN子句中提供子查询/联接。