gpt4 book ai didi

java - 为什么 Java8 Stream.min() 和 max() 将比较器作为输入?

转载 作者:行者123 更新时间:2023-12-04 00:26:14 24 4
gpt4 key购买 nike

min() 函数应该计算集合中的最小元素并将数据返回给我们,这不是很明显吗?

我可以接受用户定义的对象(如 Person、Animal 等)的事实...我们必须提供比较器来计算最小元素。但是对于 Integer、String、Double 等普遍接受的类型,它为什么要尝试接受比较器实现。

它可能是重载的函数,比如?

1.

min() => Just for types like Integer, String, Double etc..

2.

min(Comparator c) => for types like user defined objects like Person etc...

例如,

List<Integer> list = new ArrayList<>();

事实是 list.stream().min(/我仍然可以传递一个计算最大整数数据的比较器并违反函数的基本意图,对吗?/)

最佳答案

唯一的方法min()可以在没有 Comparator 的情况下工作was if 元素类型 TStream<T>必须实现Comparable<T> .

然而,Stream接口(interface)应支持实现 Comparable 的两种元素类型和没有的元素类型。因此,您必须传递 Comparator<T>min() .

关于java - 为什么 Java8 Stream.min() 和 max() 将比较器作为输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56667527/

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