나는 List<Hotel>
이고, 각각 Hotel
은 BigDecimal minSellingPrice
입니다. 최저 판매 가격으로 Hotel
을 얻고 싶습니다. 목록 스트림, 가장 저렴한 가격으로 상품을 받으십시오.
hotels.stream().min((h1, h2) -> h1.getMinSellingPrice().compareTo(h2.getMinSellingPrice())).get()
그러나 목록에있는 3 개 호텔은 공통의 최소 판매 가격이있는 경우를 통해이를 달성 할 수 있었다, 그래서 목록에 50 개의 호텔을 가지고 minSellingPrice
가장 낮은 100, 3 개 호텔입니다 50 명 중 minSellingPrice
은 100 명입니다.
어떻게 3 개 호텔 목록을 얻을 수 있습니까? 내가 생각한 유일한 것은 map
과 min
을 통해 최소 가격을 얻는 것이고, 가장 낮은 가격이지만 너무 좋지 않은 항목에 대한 목록을 조회하는 것입니다.
위의 값에 대해서는'hotels.stream()'을 필터링하십시오. 기술적으로, 여기서 역 추적이 필요 없기 때문에 한번만 트래버스하면됩니다. 어쩌면 여러 항목이있는 경우 다른 목록에 추가하는 사용자 지정 필터를 만들 수 있습니다. –
[ "max()가 Java 스트림의 모든 최대 값을 반환하는 방법"(http://stackoverflow.com/q/29334404/2711488)을 참조하십시오. 최소 논리는 동일합니다 ... – Holger