有一个[{item_id:1,rating:0.100},{item_id:1,rating:1.100},{item_id:1,rating:0.120}]的数组要求使用SpringBoot将这个数组进行降序排序并只获取前10,其中数组中的item_id是字符串类型,rating是BigDecimal类型,最终输出数组结构和原本数组一样
时间: 2023-11-28 12:47:58 浏览: 76
可以使用Java8的Stream API来对数组进行排序和筛选,下面是一个示例代码:
```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<Item> items = Arrays.asList(
new Item("1", new BigDecimal("0.100")),
new Item("1", new BigDecimal("1.100")),
new Item("1", new BigDecimal("0.120"))
);
List<Item> sortedItems = items.stream()
.sorted(Comparator.comparing(Item::getRating).reversed())
.limit(10)
.collect(Collectors.toList());
System.out.println(sortedItems);
}
static class Item {
private String itemId;
private BigDecimal rating;
public Item(String itemId, BigDecimal rating) {
this.itemId = itemId;
this.rating = rating;
}
public String getItemId() {
return itemId;
}
public BigDecimal getRating() {
return rating;
}
@Override
public String toString() {
return "{item_id:" + itemId + ", rating:" + rating + "}";
}
}
}
```
输出结果为:
```
[{item_id:1, rating:1.100}, {item_id:1, rating:0.120}, {item_id:1, rating:0.100}]
```
这里使用了一个内部类`Item`来表示数组中的每个元素,其中`itemId`表示字符串类型的`item_id`,`rating`表示`BigDecimal`类型的`rating`。在`main`方法中,我们将数组转换为一个`List<Item>`,然后使用Stream API对其进行排序和筛选,并最终输出结果。在`Item`类中,我们重写了`toString`方法,以便输出结果与原始数组结构相同。
阅读全文