Springboot中如何对一个[{itemid:1,rating:0.9},{itemid:2,rating:0.8},{itemid:3,rating:0.5}]数组中的rating进行排序,并保留前rating值最大的10个其中rating是BigDecimal类型
时间: 2023-11-27 11:53:38 浏览: 69
可以使用Java 8的Stream API对数组中的元素进行排序并筛选出前10个最大的元素,具体代码如下:
```java
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
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> topRatings = ratings.stream()
.sorted(Comparator.reverseOrder())
.limit(10)
.collect(Collectors.toList());
System.out.println(topRatings);
}
}
```
上述代码首先将数组中的元素转换为List集合,然后使用Stream API对List中的元素进行排序,这里使用了`Comparator.reverseOrder()`方法表示按照降序排列。接着使用`limit(10)`方法筛选出前10个最大的元素,并将它们收集到一个List集合中。最后输出结果即可。
阅读全文