java是否具有数组滴的方法?
在Scala中,我们有:Array.drop(10).take(16)
或可能会吸引一系列数组成员?
在Java中我只能做array[10]
。
有 Arrays::copyOfRange
:
它有三个参数:
-
original
:源数组 -
from
:起始索引,包含 -
to
:最终索引,独家
并不是说它返回一个新数组,这意味着如果您更改结果数组的值,则原始数组不会更改。
该方法超载以适用于所有原始类型和对象。
这是一个示例:
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
final int[] source = IntStream.range(0, 10).toArray()
System.out.println(Arrays.toString(source));
final int[] result = Arrays.copyOfRange(source, 3, 8);
System.out.println(Arrays.toString(result));
}
}
打印:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[3, 4, 5, 6, 7]
有关更多信息,请参见文档
我认为通过流数数组来实现此类语义是最容易的:
SomeClass[] sourceArray = /* something */;
SomeClass[] result =
Arrays.stream(sourceArray).skip(10L).limit(16L).toArray(SomeClass[]::new);