Java 如何将地图转换为用户对象列表?

Java 如何将地图转换为用户对象列表?,java,java-8,java-stream,Java,Java 8,Java Stream,我有一个具有以下结构的HashMap: Map<Object, List<OtherObject>> Map 我想把它转换成: List<FinalObject> 列表 作为最终对象: public class FinalObject { private Object object; private List<OtherObject> otherObject; } 公共类FinalObject{ 私有客体; 私有列表对象;

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

Map<Object, List<OtherObject>>
Map
我想把它转换成:

List<FinalObject>
列表
作为最终对象:

public class FinalObject {
    private Object object;
    private List<OtherObject> otherObject;
}
公共类FinalObject{
私有客体;
私有列表对象;
}

假设您有如下构造函数:

public FinalObject(Object obj, List<OtherObject> list) {
    this.object = obj;
    this.otherObject = list;
}
public FinalObject(对象对象,列表){
this.object=obj;
this.otherObject=list;
}
然后你可以做:

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

每个的对应方法是:

List<FinalObject> finalList = new ArrayList<>();
map.forEach((k,v) -> finalList.add(new FinalObject(k, v)));
List finalList=new ArrayList();
map.forEach((k,v)->finalList.add(新的FinalObject(k,v));

只需迭代条目集
.entrySet()
并将条目收集到列表中即可。如果您愿意,您可以使用直接的
for
-循环或流来实现这一点。我喜欢使用
forEach
。非常优雅