Java 如何将地图转换为用户对象列表?
我有一个具有以下结构的HashMap: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{ 私有客体; 私有列表对象;
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
。非常优雅