简体   繁体   English

2D数组的CopyOfRange

[英]CopyOfRange for 2D Arrays

Is there any similar command to Arrays.copyOfRange(short[] original, int from, int to) for 2D arrays in Java? 对于Java中的2D数组,是否有任何与Arrays.copyOfRange(short[] original, int from, int to)相似的命令?

If there is not, is there any straightforward way to copy columns or rows of 2D array without using for loops? 如果没有,是否有任何简单的方法可以在不使用for循环的情况下复制2D数组的列或行?

copy columns 复制列

1) you can copy columns just using Arrays.copyOfRange 1)您可以仅使用Arrays.copyOfRange复制列

    String[][] sss = { {"1", "2"}, {"3", "4"}};
    String[][] sss1 = Arrays.copyOfRange(sss, 0, 1); // ss = {{"1", "2"}}

2) for copy rows without loop you can use Stream Api 2)对于没有循环的复制行,可以使用Stream Api

 Arrays.stream(sss).map(s1 -> Arrays.stream(s1).skip(1).limit(1).toArray()).toArray(); // return {{"2"},{"4"}}

3) "This does a shallow copy;" 3)“这是一个浅表副本;”

Ok, use Stream Api we can do not shallow copy: 好的,使用Stream Api我们不能做浅拷贝:

Arrays.stream(sss).skip(1).limit(1).map(s1 -> Arrays.stream(s1).toArray()).toArray(); // return {{"3", "4"}}        

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM