Map<String, TBmwyResolvedevicedata> sortedMap = dataList.stream() .sorted(Comparator.comparing(TBmwyResolvedevicedata::getEndTime)) .collect(Collectors.toMap(TBmwyResolvedevicedata::getEndTime, Function.identity(), (oldValue, newValue) -> oldValue, LinkedHashMap::new)); 转为List
时间: 2024-03-08 21:49:56 浏览: 123
要将这个 `Map` 转为 `List`,可以通过 `stream()` 方法将 `Map` 中的键值对转为 `Stream`,再通过 `map()` 方法将其转为 `List` 中的元素类型,最后通过 `collect()` 方法将 `Stream` 转为 `List`。
具体代码如下:
```
List<TBmwyResolvedevicedata> sortedList = sortedMap.entrySet().stream()
.map(Map.Entry::getValue)
.collect(Collectors.toList());
```
这段代码中,`sortedMap.entrySet()` 返回一个 `Set<Map.Entry<String, TBmwyResolvedevicedata>>`,其中每一个 `Map.Entry<String, TBmwyResolvedevicedata>` 包含一个键和一个值。调用 `stream()` 方法可以将其转为 `Stream<Map.Entry<String, TBmwyResolvedevicedata>>`。接下来通过 `map()` 方法将每个 `Map.Entry` 转为其值(即 `TBmwyResolvedevicedata`),最后通过 `collect()` 方法将 `Stream` 转为 `List`。
相关问题
Map<String, List<TBmwyResolvedevicedata>> map = dataList.stream().collect(Collectors.groupingBy(TBmwyResolvedevicedata::getEndTime)); 用冒泡排序对key大小排序
可以使用冒泡排序算法对Map中的key进行排序,具体步骤如下:
1. 将Map中的key转换为一个List集合;
2. 对List集合进行冒泡排序,按照key的大小进行比较排序;
3. 根据排好序的List集合,遍历Map,将key按照排好的顺序放入一个新的LinkedHashMap中;
4. 最后,将新的LinkedHashMap返回即可。
下面是示例代码实现:
```java
Map<String, List<TBmwyResolvedevicedata>> map = dataList.stream().collect(Collectors.groupingBy(TBmwyResolvedevicedata::getEndTime));
List<String> keys = new ArrayList<>(map.keySet());
for (int i = 0; i < keys.size() - 1; i++) {
for (int j = 0; j < keys.size() - i - 1; j++) {
if (keys.get(j).compareTo(keys.get(j + 1)) > 0) {
Collections.swap(keys, j, j + 1);
}
}
}
LinkedHashMap<String, List<TBmwyResolvedevicedata>> sortedMap = new LinkedHashMap<>();
for (String key : keys) {
sortedMap.put(key, map.get(key));
}
// sortedMap即为按照key排序后的Map
```
Map<String, List<GetRecruitListOutBO>> sortedMap = new TreeMap<>(Collections.reverseOrder()); 将这个map的key作为新map集合的value,val作为新map的value
可以使用 Java 8 的流式编程和 Lambda 表达式来实现这个功能。可以按照以下步骤操作:
1. 创建一个新的 Map 对象。
2. 使用 forEach() 方法迭代原始的 Map 对象中的每个 Entry 对象。
3. 将原始 Map 中的 Entry 对象的 key 作为新 Map 的 value,将 Entry 对象的 value 作为新 Map 的 key,并将其添加到新的 Map 中。
下面是示例代码:
```
Map<String, List<GetRecruitListOutBO>> sortedMap = new TreeMap<>(Collections.reverseOrder());
// 创建新的 Map 对象
Map<List<GetRecruitListOutBO>, String> newMap = new HashMap<>();
// 迭代原始的 Map 对象,并将其转换为新的 Map 对象
sortedMap.forEach((key, value) -> newMap.put(value, key));
// 输出新的 Map 对象
System.out.println(newMap);
```
这段代码将会把 sortedMap 中的 key 转换为新 Map 的 value,将 sortedMap 中的 value 转换为新 Map 的 key,并将它们添加到新的 Map 中。注意,这里使用了 Collections.reverseOrder() 方法来创建一个反向的 TreeMap 对象,以便按照原始 Map 中的 key 降序排序。
阅读全文