Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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 将IntStream转换为二维数组_Java_Java Stream - Fatal编程技术网

Java 将IntStream转换为二维数组

Java 将IntStream转换为二维数组,java,java-stream,Java,Java Stream,在我将int[][]展平到IntStream之后。我需要按照以下算法将其“拆分回”为小的二维数组: IntSream [1,2,3,4] -> int [][] finalArr {{1,2},{2,3},{3,4}} 基本上,将两个最近的元素组合到数组中。我觉得有可能不再使用了,但我不明白。有什么建议吗?您可以从IntStream获取List(List),并使用以下代码创建两对的二维数组: import java.util.Arrays; import java.util.List;

在我将
int[][]
展平到
IntStream
之后。我需要按照以下算法将其“拆分回”为小的二维数组:

IntSream [1,2,3,4] -> int [][] finalArr {{1,2},{2,3},{3,4}}
基本上,将两个最近的元素组合到数组中。我觉得有可能不再使用了,但我不明白。有什么建议吗?

您可以从
IntStream
获取
List(List)
,并使用以下代码创建两对的二维数组:

import java.util.Arrays;
import java.util.List;
import  java.util.stream.IntStream;

public class Stream1 {
    public static void main(String[] args) {
        List<Integer> list = Arrays.asList(1, 2, 3,4);

        int [][] int2DArray = IntStream.range(1, list.size())
                .mapToObj(i -> new int[] {list.get(i-1), list.get(i)})
                .toArray(int[][]:: new);

        System.out.println(Arrays.deepToString(int2DArray));
    }
}

code
int-differentSquares(int[][]矩阵){//if(矩阵[0].length=2).flatMapToInt(x->Arrays.stream(x));//intStream.forEach(System.out::println);return…;}
code
输入的
intStream
是否由连续整数序列组成(如
[1,2,3,4]
),或者它也可以是任何一组数字(例如<代码>(1, 4, 3,2)< /代码>?不,它们是随机的。问题是,我也想在它们中间得到[2, 3 ]),因为这个问题特别是关于<代码> ItsStuts<代码>,不需要<代码>列表< /代码>。此外,没有理由使用将请求的
int[][]
更改为
Integer[][]
。因此,您可以像
int[]]int2DArray=IntStream.range(1,4).mapToObj(i->newint[]{i,i+1}).toArray(int[]]::new)这样简单地完成它霍尔格和@Federicoperaltachaffner:感谢编辑为int[][]@AnuragSharma No的输入,除非您使用外部库,如StreamEx。如果您已经有了基于索引的数据结构(即
ArrayList
),那么在我看来,这个答案中给出的方法是绝对正确的。@FedericoPeraltaSchaffner,这是OP的例子。否则,我们可以简单地使用
int[]
数组作为输入。如果输入是未知的
IntStream
,只需先调用
toArray()
,然后再调用此解决方案可能是最简单的选择。
[[1, 2], [2, 3], [3, 4]]