您可以通过各种方式在两个指定索引之间获得Java数组的一部分。
一种方法是创建一个空数组,然后将原始数组的内容从起始索引复制到endIndex。
import java.util.Arrays;
public class SlicingAnArray {
public static int[] sliceArray(int array[], int startIndex, int endIndex ){
int size = endIndex-startIndex;
int part[] = new int[size];
//复制数组的内容
for(int i=0; i<part.length; i++){
part[i] = array[startIndex+i];
}
return part;
}
public static void main(String args[]){
int intArray[] = {12, 14, 58, 225, 56, 96 , 3, 45, 8 };
intArray = sliceArray(intArray, 3, 7);
System.out.println(Arrays.toString(intArray));
}
}[225, 56, 96, 3]
java.util.Arrays类的copyOfRange()方法接受一个数组,两个整数分别表示开始和结束索引,并返回位于指定索引之间的给定数组的切片。
import java.util.Arrays;
public class SlicingAnArray {
public static void main(String args[]){
int intArray[] = {12, 14, 58, 225, 56, 96 , 3, 45, 8 };
intArray = Arrays.copyOfRange(intArray, 3, 7);
System.out.println(Arrays.toString(intArray));
}
}[225, 56, 96, 3]
import java.util.Arrays;
import java.util.stream.IntStream;
public class SlicingAnArray {
public static int[] sliceArray(int array[], int startIndex, int endIndex ){
int size = endIndex-startIndex;
int part[] = new int[size];
IntStream stream = IntStream.range(startIndex, endIndex).map(i->array[i]);
part = stream.toArray();
//复制数组的内容
for(int i=0; i<part.length; i++){
part[i] = array[startIndex+i];
}
return part;
}
public static void main(String args[]){
int intArray[] = {12, 14, 58, 225, 56, 96 , 3, 45, 8 };
intArray = sliceArray(intArray, 3, 7);
System.out.println(Arrays.toString(intArray));
}
}[225, 56, 96, 3]