如何将Map转换为用户对象列表?

问题描述 投票:4回答:2

我有一个具有以下结构的HashMap:

Map<Object, List<OtherObject>>

我想将其转换为:

List<FinalObject>

是FinalObject:

public class FinalObject {
    private Object object;
    private List<OtherObject> otherObject;
}
java java-8 java-stream
2个回答
7
投票

假设你有一个像这样的构造函数:

public FinalObject(Object obj, List<OtherObject> list) {
    this.object = obj;
    this.otherObject = list;
}

然后你可以这样做:

List<FinalObject> newList = map.entrySet()
                               .stream().map(e -> new FinalObject(e.getKey(), e.getValue()))
                               .collect(Collectors.toList());   

2
投票

相应的forEach方法将是:

List<FinalObject> finalList = new ArrayList<>();
map.forEach((k,v) -> finalList.add(new FinalObject(k, v)));
© www.soinside.com 2019 - 2024. All rights reserved.