如何在 Java 中獲取原始陣列的一部分?


可以透過多種方式在兩個指定索引之間獲取 Java 陣列的一部分。

透過複製內容

一種方法是建立一個空陣列,將原始陣列的內容從 startIndex 複製到 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];
      //Copying the contents of the array
      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]

使用 copyOfRange() 方法 

java.util.Arrays 類的 copyOfRange() 方法接受一個數組、兩個表示 startIndex 和 endIndex 的整數,並返回給定陣列中在指定索引之間的一部分。

示例

 即時演示

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]

使用 Java8 資料流

 即時演示

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();
      //Copying the contents of the array
      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]

更新時間:2019-10-15

788 次瀏覽

開啟你的 職業生涯

完成課程認證

開始
廣告
© . All rights reserved.