Map<String, Object> 根据指定key 排序
时间: 2023-11-18 07:09:42 浏览: 42
如果你想要根据指定的 key 对 Map 进行排序,可以使用 Java 8 的 Stream API 和 Comparator 接口来实现。下面是一个示例代码:
```java
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.stream.Collectors;
public class MapSortExample {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<>();
map.put("name", "Alice");
map.put("age", 25);
map.put("city", "New York");
// 按照指定 key 排序
Map<String, Object> sortedMap = map.entrySet().stream()
.sorted(Comparator.comparing(Map.Entry::getKey))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new));
System.out.println(sortedMap);
}
}
```
在上面的代码中,我们使用 `entrySet()` 方法将 Map 转换为一个包含键值对的 Set,并使用 Stream API 对其进行排序。`Comparator.comparing(Map.Entry::getKey)` 方法指定按照 key 进行排序。最后,我们使用 `Collectors.toMap()` 方法将排序后的结果收集到一个新的 LinkedHashMap 中。其中,LinkedHashMap 是有序的 Map 实现,可以保证元素的顺序。