list<map>转成list
时间: 2023-09-29 09:03:15 浏览: 93
假设你的 `List<Map>` 是这样的:
```
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "Alice");
map1.put("age", 25);
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "Bob");
map2.put("age", 30);
list.add(map2);
```
你可以使用 `stream()` 方法将其转换为 `List`,如下所示:
```
List<Object> result = list.stream().flatMap(m -> m.values().stream()).collect(Collectors.toList());
```
这里的 `flatMap()` 方法将每个 `Map` 对象的值转换为一个 `Stream`,然后将所有的 `Stream` 合并成一个 `Stream`。最后使用 `collect()` 方法将所有的值收集到一个新的 `List` 中。这样,你就可以得到一个只包含所有值的 `List`。
相关问题
Stream将list<map>转成list<Map<String,Object>>并排序
可以按照以下步骤将list<map>转成list<Map<String,Object>>并排序:
1. 遍历list<map>,将每个map转成Map<String,Object>类型,并添加到新的List中。可以使用Java8的Stream API来实现,代码如下:
```
List<Map<String, Object>> newList = oldList.stream()
.map(map -> new HashMap<String, Object>(map))
.collect(Collectors.toList());
```
2. 使用Collections.sort()方法对新的List进行排序。可以自定义Comparator来指定排序规则,比如按照某个键值的大小进行排序。代码如下:
```
Collections.sort(newList, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
// 比较规则,比如按照键值为"age"的大小进行排序
return Integer.compare((int) o1.get("age"), (int) o2.get("age"));
}
});
```
注意,这里我假设每个map中都包含一个名为"age"的整型键值,你需要根据实际情况来修改比较规则。
java List<Map<String,String>> 转成 List<Map>
你可以使用Java的原生类型推断来实现List<Map<String, String>>转为List<Map>。在Java 7之后,你可以使用菱形语法来简化泛型类型的定义。下面是一个示例代码:
```java
List<Map<String, String>> originalList = new ArrayList<>();
// 假设originalList已经包含了一些数据
// 使用原生类型推断,将List<Map<String, String>>转为List<Map>
List<Map> newList = new ArrayList<>(originalList);
```
请注意,这种转换会导致Map中的值丢失其具体的数据类型,因为Map的值类型被擦除为Object。如果你需要保留具体的数据类型,可以考虑使用更具体的泛型类型,如List<Map<String, Object>>来代替List<Map>。
阅读全文