entrySet().stream()将key值换成value值里的其中一个属性,value值换成属性拼接的字符,然后返回成新的hashmap
时间: 2023-12-14 21:36:11 浏览: 26
可以使用Java 8中的Stream API来实现这个操作。代码如下:
```
Map<String, MyObject> originalMap = new HashMap<>();
// 假设原始map已经被填充好了
Map<String, String> newMap = originalMap.entrySet().stream()
.collect(Collectors.toMap(
Map.Entry::getKey,
entry -> entry.getValue().getProperty() + entry.getValue().getOtherProperty()
));
```
这里假设`MyObject`类有两个属性`property`和`otherProperty`,需要将它们拼接成一个字符串作为新的value值。你可以根据实际情况修改这个表达式。
相关问题
entrySet().stream()将key值换成value值里的其中一个属性,value值换成属性拼接的字符
串,可以使用如下代码实现:
```
map.entrySet().stream()
.map(entry -> entry.getValue().getProperty() + entry.getValue().getOtherProperty())
.forEach(System.out::println);
```
其中,`getProperty()`和`getOtherProperty()`是`value`值所包含的某些属性的方法。你需要将它们替换为相应的方法名。这段代码会遍历`map`中的每一个键值对,将`value`值中的属性拼接成字符串,并打印出来。
entrySet().stream()将value值里的list集合转换为每个list集合里对象的值拼接
起来后,应该如何实现?
A:
可以使用flatMap()将每一个list集合中的元素展开,然后使用collect()将所有元素收集成一个新的List。具体代码实现如下:
```
Map<String, List<String>> map = new HashMap<>();
//假设map已经被初始化
List<String> values = map.entrySet().stream()
.flatMap(entry -> entry.getValue().stream())
.collect(Collectors.toList());
```
这样,values中就包含了每个list集合里对象的值拼接起来后的列表。