Java有一种Array drop方法吗?
在Scala中我们有:Array.drop(10).take(16)
或者可能需要一系列阵列的成员?
在Java中,我只能做array[10]
例如。
答案 0 :(得分:2)
有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]
有关详细信息,请参阅the docs
答案 1 :(得分:1)
我认为通过流式传输数据来实现这种语义最简单:
SomeClass[] sourceArray = /* something */;
SomeClass[] result =
Arrays.stream(sourceArray).skip(10L).limit(16L).toArray(SomeClass[]::new);