Springboot中如何对一个[{itemid:1,rating:0.9},{itemid:2,rating:0.8},{itemid:3,rating:0.5}]数组中的rating进行排序,并保留前rating值最大的10个其中rating是BigDecimal类型
时间: 2023-11-27 19:53:39 浏览: 30
可以使用Java8的流式处理来对数组进行排序并保留前10个最大的元素,具体实现如下:
```java
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<BigDecimal> ratings = Arrays.asList(
new BigDecimal("0.9"),
new BigDecimal("0.8"),
new BigDecimal("0.5")
);
List<BigDecimal> top10 = ratings.stream()
.sorted(Comparator.reverseOrder())
.limit(10)
.collect(Collectors.toList());
System.out.println(top10);
}
}
```
这段代码首先将数组转换为一个 `List<BigDecimal>`,然后使用流式处理对其进行排序(降序),并使用 `limit` 方法保留前10个元素。最后,将结果收集到一个列表中并输出即可。