springboot项目,使用stream流,将HashMap<Integer, BigDecimal>按照value的值,倒叙排序,得到新的LinkedHashMap<Integer, BigDecimal>类型的数据
时间: 2025-01-28 12:17:05 浏览: 51
在Spring Boot项目中,你可以使用Java 8的Stream API来对`HashMap<Integer, BigDecimal>`按照值进行倒序排序并转换成`LinkedHashMap<Integer, BigDecimal>`。以下是一个简单的步骤:
首先,获取到HashMap并创建一个SortedMap流,指定排序规则为降序(`Comparator.reverseOrder()`):
```java
Map<Integer, BigDecimal> map = ... // 初始化你的HashMap
List<Map.Entry<Integer, BigDecimal>> entries = map.entrySet().stream()
.sorted(Map.Entry.<Integer, BigDecimal>comparingByValue().reversed())
.collect(Collectors.toList());
```
然后,你可以利用`LinkedHashMap`的构造函数,通过`Collections.unmodifiableMap()`方法将其转换为不可修改的有序映射:
```java
LinkedHashMap<Integer, BigDecimal> sortedMap = new LinkedHashMap<>();
entries.forEach(entry -> sortedMap.put(entry.getKey(), entry.getValue()));
sortedMap = Collections.unmodifiableMap(sortedMap);
```
现在,`sortedMap`就是按照`BigDecimal`值倒序的新LinkedHashMap。
阅读全文
相关推荐



















