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

4

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

Map<Object, List<OtherObject>>

我希望你能把它转换为:

List<FinalObject>

成为 FinalObject:

public class FinalObject {
    private Object object;
    private List<OtherObject> otherObject;
}

只需迭代条目集.entrySet()并将条目收集到列表中。如果您喜欢,可以使用简单的for循环或流来完成此操作。 - Zabuzard
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)));

我喜欢使用 forEach。非常优雅。 - GBlodgett

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接