Java 中的陣列範圍

Lovey Arora 2023年10月12日
  1. 在 Java 中使用另一個陣列從陣列中獲取一系列元素
  2. 在 Java 中使用 copyOfRange() 方法從陣列中獲取元素範圍
  3. 在 Java 中使用 stream 物件從陣列中獲取一系列元素
Java 中的陣列範圍

完成陣列切片以從現有陣列中獲取一系列元素。這就像從給定陣列中提取子陣列。

本教程演示瞭如何從現有陣列中獲取一系列元素。

在 Java 中使用另一個陣列從陣列中獲取一系列元素

我們將在此方法中將所需元素複製到新陣列中。首先,我們必須根據給定的範圍找到陣列的開始和結束索引。然後,我們必須建立一個大小為(endIndex - startIndex)的空陣列。最後,我們將給定陣列中的元素複製到切片陣列中並列印出來。

請參考下面給出的程式碼。

import java.util.Arrays;

public class Main {
  public static int[] getSlice(int[] array, int startIndex, int endIndex) {
    int[] slicedArray = new int[endIndex - startIndex];
    for (int i = 0; i < slicedArray.length; i++) {
      slicedArray[i] = array[startIndex + i];
    }
    return slicedArray;
  }
  public static void main(String args[]) {
    int[] array = {87, 56, 29, 11, 45, 33, 84, 4, 67, 73};
    int startIndex = 4, endIndex = 9;
    int[] slicedArray = getSlice(array, startIndex, endIndex + 1);
    System.out.println("Slice of Array: " + Arrays.toString(slicedArray));
  }
}

輸出:

Slice of Array: [45, 33, 84, 4, 67, 73]

建議僅在處理小尺寸陣列時使用此方法。迭代一個陣列並複製到另一個陣列需要大量的記憶體和時間。

在 Java 中使用 copyOfRange() 方法從陣列中獲取元素範圍

該方法在 java.util.Arrays 類中定義。此方法將給定原始陣列中特定範圍的元素複製到一個新陣列,然後返回該陣列。

例如,

import java.util.Arrays;
public class Main {
  public static int[] slice(int[] array, int startIndex, int endIndex) {
    int[] slicedArray = Arrays.copyOfRange(array, startIndex, endIndex);
    return slicedArray;
  }
  public static void main(String args[]) {
    int[] array = {87, 56, 29, 11, 45, 33, 84, 4, 67, 73};
    int startIndex = 4, endIndex = 9;
    int[] sliceArray = slice(array, startIndex, endIndex + 1);
    System.out.println("Slice of Array: " + Arrays.toString(sliceArray));
  }
}

輸出:

Slice of Array: [45, 33, 84, 4, 67, 73]

在 Java 中使用 stream 物件從陣列中獲取一系列元素

我們首先在此方法中查詢範圍的 startIndexendIndex。然後,我們必須使用 range() 方法將所需範圍內的元素轉換為原始流。接下來,map() 方法用於從原始陣列對映範圍所需的元素。最後,toArray() 方法將對映的陣列轉換為陣列,然後我們將其列印出來。

請參考下面給出的程式碼。

import java.util.Arrays;
import java.util.stream.IntStream;
public class Main {
  public static int[] findSlice(int[] array, int startIndex, int endIndex) {
    int[] slcarray = IntStream.range(startIndex, endIndex).map(i -> array[i]).toArray();
    return slcarray;
  }
  public static void main(String args[]) {
    int[] array = {87, 56, 29, 11, 45, 33, 84, 4, 67, 73};
    int startIndex = 4, endIndex = 9;
    int[] slcarray = findSlice(array, startIndex, endIndex + 1);
    System.out.println("Slice of array for the specified range is: " + Arrays.toString(slcarray));
  }
}

輸出:

Slice of Array: [45, 33, 84, 4, 67, 73]

相關文章 - Java Array