Java 8 - 如何从列表中获取对象的多个属性?

标签 java java-8 java-stream

我有一个由 Google places API 返回的位置列表,我决定找到一个价格最低的地方。

这是我用 Java 8 实现它的方式:

BigDecimal lowestPrice = places.stream()
                .collect(Collectors.groupingBy(Place::getPrice, Collectors.counting()))
                .entrySet().stream().min(Map.Entry.comparingByValue())
                .map(Map.Entry::getKey)
                .orElse(BigDecimal.ZERO); 

它会返回最低价格,但如果能得到地点的名称也很棒(它有一个 name 属性)。

如何返回价格最低的地点的 name

最佳答案

为什么不返回整个 Place 对象?

places.stream().min(Comparator.comparing(Place::getPrice)).get()

关于Java 8 - 如何从列表中获取对象的多个属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53696914/

相关文章:

java - Spring 集成: Returning stream

java - 如何使用 Stream API 返回 null?

Java - 函数接口(interface) "lever"是否用于 lambda 表达式?

java - 并行流中的 Fork-Join 池

java - Java 中 Atoi 表示负值

java - 无法从 App Engine flex Java 上的不同项目连接到 Cloud SQL

java - 用于获取 AWS EMR 中任务实例组实例计数的 API

generics - 如何使用流在 Java8 中返回特定类型的数组而不是泛型类型

java - java.util.stream.Stream<T>.sorted() 的大 O 复杂度

Java 流收集函数 : property cannot be resolved [Compilation error]