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

方法在Java 8计算地图的值后返回地图的键

柳奇希
2023-03-14

如果map的大小是1,那么应该返回它的键。如果它的大小大于1,则遍历map中的值,并返回该值的键,该键具有某个属性的最大值。下面是我的代码片段。我想用Java8 streams API实现同样的功能。

public  MessageType getOrgReversalTargetMti(Map<MessageType, List<TVO>> map) {
    MessageType targetMessageType = null;
    if (1 == map.size()) {
        targetMessageType = map.keySet().iterator().next();
    }
    else {
        long maxNumber = 0;
        for (final MessageType messageType : map.keySet()) {
            List<TVO> list = map.get(messageType);
            long trace = list.get(0).getTrace();
            if (trace > maxNumber) {
                maxNumber = trace;
                targetMessageType = messageType;
            }
        }
    }
    return targetMessageType;
}

共有1个答案

屠振濂
2023-03-14

可以将max()终端操作一起使用:

public  MessageType getOrgReversalTargetMti(Map<MessageType, List<TVO>> map) {
    return map.entrySet()
              .stream()
              .max(Comparator.comparing(e -> e.getValue().get(0).getTrace()))
              .map(Map.Entry::getKey())
              .orElse(null);
}
 类似资料:
  • 问题内容: 我有一个Map(String,String),我想找到一个条目和Map的内存大小。我读的地方,仪表可能是有用的(仪器)。有人有主意吗? 提前致谢。 问题答案: 对于64位JVM,空白实例应为24字节,对于32位JVM,空白实例应为12字节。这是我发现有用的@PeterLawrey的技术,基于MemoryUsageExamplesTest:

  • 我有一个,我希望在其中返回字符串值的列表,但按int键的升序/降序排序。如果返回的是我也希望排序的迭代项,例如返回或列表,那么这将很容易,但是我想不出一种方法来做到这一点,除了在使用遍历整个映射并插入值以从映射键索引(如下面所示)之后手动创建一个列表,然后在该列表中嵌套另一个以消除任何空值之外。 请告诉我有更好更有效的方法吗?任何帮助都是非常感谢的!

  • 问题内容: Go如何计算地图中键的哈希值?它是真正唯一的并且可以在其他结构中使用吗? 我认为对于像或不可变的原始键来说很容易,但是对于复合结构来说似乎并不平凡。 问题答案: 语言规范没有说,这意味着它可以随时自由更改,或者在实现之间有所不同。 哈希算法在类型和平台之间有所不同。截至目前:在x86(32或64位)上,如果CPU支持AES指令,则运行时将使用,其是基于AES原语构建的哈希,否则它将使用

  • 我有MainActivity上有一个片段,当用户点击片段时,用户会导航到另一个片段,在最后一个片段上有一个按钮来启动谷歌地图导航,这是代码: 问题是,在地图启动后,我希望用户在按下back时返回到我的应用程序,而不是Launcher。 有没有办法做到这一点。 这是我的完整代码: 主体活动 原木

  • 当我试图用从故事中获得的返回值设置我的状态时,我会收到一个数组,其中充满了promise的状态和值。 从我的控制台图像。登录渲染 如何仅分配来自PromiseValue的数据? }

  • 我有下面的地图地图,并想过滤它的基础上的一个值。结果应分配回同一地图。请告诉我什么是最好的方法。 我尝试了如下操作,但无法访问employee对象