- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个类(class) String
和一个 int
field 。
public class Data {
private String name;
private int value;
private Data(String name, int value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public int getValue() {
return value;
}
}
我有一个
List<Data>
如果我想创建一个 map (分组)来了解每个名称的最大值的 Data 对象,我可以这样做,
Map<String, Optional<Data>> result = list.stream()
.collect(Collectors.groupingBy(Data::getName,
Collectors.maxBy(Comparator.comparing(Data::getValue))));
但是,由于
Collectors.maxBy
的约定,RHS 被包裹在一个 Optional 中。但我想要一个
Map<String, Data>
.
Collectors.collectingAndThen
,但我将不得不创建一个不必要的中间 map 。
list.stream()
.collect(Collectors.collectingAndThen(Collectors.groupingBy(Data::getName,
Collectors.maxBy(Comparator.comparing(Data::getValue))),
map -> map.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey,
e -> e.getValue().get()))));
是否有使用流的惯用方法来实现这一目标?
最佳答案
您可以使用 BinaryOperator.maxBy
与 Collectors.toMap
Map<String, Data> result = list.stream()
.collect(Collectors.toMap(Data::getName, Function.identity(),
BinaryOperator.maxBy(Comparator.comparing(Data::getValue))));
关于java - 将收集器 maxBy 与 groupingBy 一起使用时展开可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63159338/
为什么 var a = Observable.Interval(TimeSpan.FromSeconds(1)) .Publish(); a.Subscribe(o => { Cons
A maxby(list, f) 以对象列表和函数 f 作为参数,这样 f 可应用于任何对象在列表中返回一个数字。然后 maxby 返回 list 中 f(x) 最大的对象 x。 编写类似maxby(
跟进this question我想知道为什么maxBy的 Traversable[T]返回单个值 T而不是 T 的序列(列表或类似的)。这看起来是一个很常见的案例。例如(来自上一个问题): 对于学生名
我想获取属性为最大值的可枚举的所有元素: IEnumerable allOldest = people.GroupBy(p => p.Age) .OrderByDescending(i=>i.
我正在编写一个代码来处理不同省份不同城市的山间小屋。我正在尝试计算每个海拔范围内单个山间小屋中可用的最大床位数量。如果山间小屋的海拔不可用,我会使用其城市的海拔高度。我希望我的方法返回 Map>但我得
我有一个类(class) String和一个 int field 。 public class Data { private String name; private int valu
我正在使用带有 MoreLinq 扩展的 EF5,在生产环境(非常大的数据库)中测试我的程序时,我发现了这一行: var x = db.TheBigTable.MaxBy(x => x.RecordT
Lodash 的 .maxBy 的 JavaScript 等价物是什么?我在 YouTube 上的 minimax 教程中看到了代码 _.maxBy(values, ...)。我不想使用任何外部依赖项
我有一个 SQLite 表,其中混合有整数列和浮点列。我正在尝试获取每列的最大值和最小值。对于整数列,以下代码有效,但在浮点列上使用相同的代码时出现转换错误: let numCats = query{
斯卡拉的Iterable有 maxBy : Finds the first element which yields the largest value measured by function f.
KeyedStream#max(字符串字段) Applies an aggregation that gives the current maximum of the data stream at t
在 C# 10 .Net 6 中新的 MinBy 或 MaxBy 调用之后是否有内联方法来投影属性? double topPriceInList = prices.MaxBy(h => h.High)
我无法编译以下代码(在 onlinegdb 尝试): List> list = Arrays.asList( new Container<>(new Dto("A"),
我正在使用 RandomForestCLassifier 构建模型。这是我的代码, conf = SparkConf() conf.setAppName('spark-nltk') sc = Spar
在 Java Streams 中 - stream.max(Comparator) 之间的区别是什么?和 stream.collect(Collectors.maxBy(Comparator))在性能
我已经在 text classification 上下载了最新更新模板。我创建了一个新应用程序并通过指定应用程序 ID 导入了 stopwords.json 和 emails.json $ pio i
这个问题在这里已经有了答案: Difference between stream.max(Comparator) and stream.collect(Collectors.maxBy(Compar
我是一名优秀的程序员,十分优秀!