gpt4 book ai didi

Java 8 stream min 没有返回预期值

转载 作者:搜寻专家 更新时间:2023-11-01 02:02:07 25 4
gpt4 key购买 nike

<分区>

我希望从 Java map 列表中获取最小值。我使用 flatmap、stream 和 min 的组合来这样做,但没有得到预期的结果。这是代码 公开课 TestMin {

public  static class TestHolder{
public static Map<String,Integer> getValues(){
Map<String,Integer> map = new HashMap<>();
map.put("a",1);
map.put("b",3);
map.put("c",2);

return map;

}
}

public static void main(String[] args) {
List<Map<String, Integer>> l = new ArrayList<>();
l.add(TestHolder.getValues());
l.add(TestHolder.getValues());
l.add(TestHolder.getValues());

// Getting min
int min = l.stream().map((m)->m.values()).flatMap((v)->v.stream()).min(Integer::min).get();
System.out.println(min);
}

}

输出是:2

当然,我期望的输出是 1。尝试一些调试表明它正在为输出提供一个对应于“c”的值。即如果 map 看起来像

[a->2 , b->3, c->1] 

然后我得到的输出是 1。问题是为什么它不按值排序而是按键排序并为我提供意外的输出。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com