Map<String,AA>A,AA中有String类型参数 b,c,d,用stream流实现有一新Map<String,String>B,key为A的Key,Key对应信息为AA中的参数b和c
时间: 2024-12-10 15:41:41 浏览: 8
在Java中,你可以使用`Stream` API 来处理这种转换。假设有一个`AA`类,它有一个`getB()`和`getC()`方法返回`String`值,你可以这样做:
```java
import java.util.*;
import java.util.stream.*;
class AA {
private String key;
// 其他属性...
public String getB() {
return this.b; // 假设b是AA类的一个字段
}
public String getC() {
return this.c; // 假设c是AA类的另一个字段
}
}
public class Main {
public static void main(String[] args) {
// 假设A是一个Map<String, AA>
Map<String, AA> A = ... // 初始化你的A map
// 使用Stream创建新的Map<B>
Map<String, String> B = A.entrySet().stream()
.collect(Collectors.toMap(
entry -> entry.getKey(), // 将A的key作为新Map的key
entry -> {
AA aa = entry.getValue();
return String.format("%s-%s", aa.getB(), aa.getC()); // 拼接aa的b和c
},
(oldValue, newValue) -> oldValue)); // 如果键已存在,保留旧值,默认采用并行收集,这里不需要合并
}
}
```
在这个例子中,`entrySet().stream()`遍历`A`中的每个条目,`Collectors.toMap`函数用于创建一个新的映射,其中新的value是通过访问`AA`实例获取的`b`和`c`字符串拼接而成。
阅读全文