对Map<String, BigDecimal>按值进行排序
时间: 2023-11-18 20:47:42 浏览: 49
你可以使用Java中的Stream API来对Map<String, BigDecimal>按值进行排序。下面是一个示例代码:
```java
import java.util.*;
import java.util.stream.*;
public class Main {
public static void main(String[] args) {
Map<String, BigDecimal> map = new HashMap<>();
map.put("A", new BigDecimal("10.5"));
map.put("B", new BigDecimal("5.2"));
map.put("C", new BigDecimal("7.8"));
// 使用Stream API对Map按值进行排序
List<Map.Entry<String, BigDecimal>> sortedList = map.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toList());
// 打印排序后的结果
for (Map.Entry<String, BigDecimal> entry : sortedList) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
```
这个例子中,我们创建了一个包含String作为键和BigDecimal作为值的Map。然后,我们使用Stream API对Map的entrySet进行流操作,通过comparingByValue()方法按值进行排序。最后,我们使用collect(Collectors.toList())将排好序的结果收集到List中,并打印出来。
输出结果将会是:
```
B: 5.2
C: 7.8
A: 10.5
```
这样,你就可以按值对Map进行排序了。