Java 如何将两个独立列表转换为单个列表
我有如下两个列表,需要导出类似于输出列表中提到的内容。我尝试在列表B上为列表A的每个值使用java流,但它总是返回以下错误 不存在符合r的类型变量r的实例。感谢所有帮助 列表A=[{1}] 列表B=[{4,5,6}]Java 如何将两个独立列表转换为单个列表,java,arraylist,lambda,java-8,java-stream,Java,Arraylist,Lambda,Java 8,Java Stream,我有如下两个列表,需要导出类似于输出列表中提到的内容。我尝试在列表B上为列表A的每个值使用java流,但它总是返回以下错误 不存在符合r的类型变量r的实例。感谢所有帮助 列表A=[{1}] 列表B=[{4,5,6}] 输出列表,列表C=[{1,4},{1,5},{1,6}]您可以定义一个自定义对象来保留来自两个不同列表的值 public class ResultObj { private Integer valueA; private Integer valueB; pu
输出列表,列表C=[{1,4},{1,5},{1,6}]您可以定义一个自定义对象来保留来自两个不同列表的值
public class ResultObj {
private Integer valueA;
private Integer valueB;
public ResultObj(Integer valueA, Integer valueB) {
this.valueA = valueA;
this.valueB = valueB;
}
// getters, setters
@Override
public String toString() {
return "{" + valueA + "," + valueB + "}";
}
}
试试这个:
List<ResultObj> output = listA.stream().flatMap(a -> listB.stream().map(b -> new ResultObj(a, b)))
.collect(Collectors.toList());
System.out.println(output);
希望这将有助于:
List listA=Arrays.asList1;
List listB=Arrays.asList4,5,6;
列表结果=listA.stream.flatmappa->listB.stream.mapb->Arrays.asLista,b
.toList;
系统输出打印结果;
结果:
[[1, 4], [1, 5], [1, 6]]
如果你能添加你的代码,就更容易帮助解决你的问题。可以简化.mapa->listB.stream.mapb->new ResultObja,b.collectors.toList.flatMapList::stream to.flatmap->listB.stream.mapb->new ResultObja,b谢谢!它确实解决了我的问题。乐于助人的SukMuar工作,你会考虑接受/支持这个答案吗?谢谢
[[1, 4], [1, 5], [1, 6]]