Array-Bereich in Java

Lovey Arora 12 Oktober 2023
  1. Verwenden Sie ein anderes Array, um eine Reihe von Elementen aus einem Array in Java zu erhalten
  2. Verwenden Sie die Methode copyOfRange(), um eine Reihe von Elementen aus einem Array in Java zu erhalten
  3. Verwendung des stream-Objekts zum Abrufen eines Bereichs von Elementen aus einem Array in Java
Array-Bereich in Java

Array-Slicing wird durchgeführt, um einen Bereich von Elementen aus dem vorhandenen Array zu erhalten. Es ist wie das Extrahieren eines Unter-Arrays aus einem gegebenen Array.

In diesem Tutorial wird gezeigt, wie Sie einen Bereich von Elementen aus einem vorhandenen Array abrufen.

Verwenden Sie ein anderes Array, um eine Reihe von Elementen aus einem Array in Java zu erhalten

Wir werden in dieser Methode die erforderlichen Elemente in ein neues Array kopieren. Zuerst müssen wir den Start- und Endindex des Arrays basierend auf dem angegebenen Bereich finden. Dann müssen wir ein leeres Array der Größe erstellen (endIndex - startIndex). Schließlich kopieren wir die Elemente aus dem angegebenen Array in das geschnittene Array und geben es aus.

Siehe den unten angegebenen Code.

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

Ausgabe:

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

Es ist ratsam, diese Methode zu verwenden, wenn es sich nur um ein Array mit kleinen Größen handelt. Das Durchlaufen eines Arrays und das Kopieren in ein anderes Array erfordert viel Speicher und Zeit.

Verwenden Sie die Methode copyOfRange(), um eine Reihe von Elementen aus einem Array in Java zu erhalten

Diese Methode ist in der Klasse java.util.Arrays definiert. Diese Methode kopiert den spezifischen Bereich von Elementen aus dem angegebenen ursprünglichen Array in ein neues Array und gibt dann dieses Array zurück.

Zum Beispiel,

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

Ausgabe:

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

Verwendung des stream-Objekts zum Abrufen eines Bereichs von Elementen aus einem Array in Java

Wir beginnen damit, den startIndex und endIndex des Bereichs in dieser Methode zu finden. Dann müssen wir das Element im erforderlichen Bereich mit der Methode range() in Primitive Stream umwandeln. Als nächstes wird die Methode map() verwendet, um die benötigten Elemente für den Bereich aus dem ursprünglichen Array abzubilden. Schließlich wandelt die Methode toArray() das abgebildete Array in ein Array um und wir geben es aus.

Siehe den unten angegebenen Code.

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

Ausgabe:

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

Verwandter Artikel - Java Array