Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将两个独立列表转换为单个列表_Java_Arraylist_Lambda_Java 8_Java Stream - Fatal编程技术网

Java 如何将两个独立列表转换为单个列表

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

我有如下两个列表,需要导出类似于输出列表中提到的内容。我尝试在列表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;
    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]]