Java从数组中获得范围



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);

最新更新