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

sam*_*mba 3 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); 
Run Code Online (Sandbox Code Playgroud)

它返回了我的最低价格,但获得Place的名称也很棒(它有一个name属性).

我怎样才能返回name价格最低的地方?

Wen*_*uen 9

你为什么不归还整个Place物体?

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