Slicen ein Array in Java

Shiv Yadav 12 Juli 2022 Java Java Array
  1. Array-Slicing in Java
  2. Aufteilen eines Arrays durch Duplizieren von Elementen in Java
  3. Slicen Sie ein Array mit der Methode copyOfRange() in Java
  4. Aufteilen eines Arrays mithilfe des Java 8-Streams
Slicen ein Array in Java

Dieser Artikel hilft Ihnen, ein Array in Java in ein Subarray zu zerlegen.

Array-Slicing in Java

Array Slicing ist eine Java-Technik zum Extrahieren eines Subarrays aus einem umfangreicheren Array.

Angenommen, k[] ist ein Array. Es hat 7 Komponenten, die von k[0] bis k[6] nummeriert sind.

k[] = {5, 6, 7, 8, 9, 10, 11}

Nun suchen wir nach einem Slice des Array-Index zwischen k[2] und k[5]. Der startIndex ist k[2], während der endIndex k[5] ist.

Als Ergebnis erhalten wir das unten geteilte Array:

k[] = {7, 8, 9, 10}

In den folgenden Abschnitten lernen wir, wie man einen Array-Slice in Java findet.

Aufteilen eines Arrays durch Duplizieren von Elementen in Java

Es ist eine integrierte Methode, um einen Teil eines Arrays zu erfassen. Bei dieser Prozedur werden zunächst die Start- und Endindizes des bereitgestellten Arrays ermittelt.

Danach erzeugen wir ein größenunabhängiges leeres Array (sliced ​​array) (endIndex - startIndex). Kopieren Sie die Elemente (von startIndex) aus dem bereitgestellten Array in das segmentierte Array und drucken Sie schließlich das segmentierte Array.

Verwenden wir die oben beschriebene Methode in einem Java-Programm, um ein geteiltes Array des bereitgestellten Arrays zu erhalten. Wir werden in dieser Anwendung eine Reihe primitiver Arten verwenden.

import java.util.Arrays;

public class Copy {

    public static int[] getSlice(int[] arr, int stIndx, int enIndx) {

        int[] sclicedArr = new int[enIndx - stIndx];

        for (int i = 0; i < sclicedArr.length; i++) {
            sclicedArr[i] = arr[stIndx + i];
        }

        return sclicedArr;
    }

    public static void main(String args[]) {

        int[] arr = { 20, 65, 87, 19, 55, 93, 76, 98, 54, 21 };

        int stIndx = 2, enIndx = 6;

        int[] sclicedArr = getSlice(arr, stIndx, enIndx + 1);

        System.out.println("Slice of an Array: " + Arrays.toString(sclicedArr));
    }
}

Um den Code auszuführen, speichern Sie das Programm als Java-Datei und führen Sie es in Ihrer Java-IDE aus.

Ausgabe:

Java-Array-Splice - Ausgang 1

Slicen Sie ein Array mit der Methode copyOfRange() in Java

Die Klasse Java Array enthält die Methode copyOfRange(). Es repliziert den angegebenen Bereich des Arrays in ein neu gebildetes Array (Slice-Array) und gibt das neu erstellte Array mit dem angegebenen Bereich des ursprünglichen Arrays zurück.

Das Slicen eines Arrays erfordert O(n) Zeit und O(n) Speicherplatz, um die Elemente zu speichern, wobei n die Anzahl der Elemente im resultierenden Array ist.

Syntax:

public static int[] copyOfRange(int[] original, int from, int to)

Die folgenden 3 Parameter werden von der Methode analysiert:

  • original: Es ist ein Array mit einem Slice, das gefunden werden muss.
  • von: Dies ist der Index für die erste Seite. Er muss im Bereich von 0 bis zur Länge des Arrays liegen.
  • bis: Es ist der letzte Index.

Die folgenden Ausnahmen werden ausgelöst:

Wenn der Startindex kleiner als 0 oder größer als die Länge des ursprünglichen Arrays ist, wird eine ArrayIndexOutOfBoundsException geworfen. Ist der Startindex signifikanter als der Endindex, wird eine IllegalArgumentException geworfen.

Wenn das angegebene Array null ist, wird eine NullPointerException geworfen.

import java.util.Arrays;

public class Copy1 {

    public static int[] slice(int[] arr, int stIndx, int enIndx) {

        int[] sclicedArr = Arrays.copyOfRange(arr, stIndx, enIndx);

        return sclicedArr;
    }

    public static void main(String args[]) {

        int[] arr = { 20, 65, 87, 19, 55, 93, 76, 98, 54, 21 };
        int stIndx = 3, enIndx = 8;

        int[] sliceArray = slice(arr, stIndx, enIndx + 1);

        System.out.println("Slice of Array: " + Arrays.toString(sliceArray));
    }
}

Um den Code auszuführen, speichern Sie das Programm als Java-Datei und führen Sie es in Ihrer Java-IDE aus.

Ausgabe:

Java-Array-Splice - Ausgang 2

Aufteilen eines Arrays mithilfe des Java 8-Streams

Wir können den Java 8 Stream verwenden, um den Slice eines Arrays zu erkennen, indem wir die folgenden Anweisungen befolgen.

  • Suchen Sie zuerst die Start- und End-Index-Arrays.
  • Konvertieren Sie mit der Funktion range() die Elemente (die sich in Reichweite befinden) in Primitive Stream.
  • Verwenden Sie die Funktion map(), um die bereitgestellten Elemente aus einem Array abzubilden.
  • Konvertieren Sie das gemappte Array mit der Funktion toArray() in ein Array.
  • Drucken Sie das geschnittene Array.
import java.util.Arrays;
import java.util.stream.IntStream;

public class NewClice {

    public static int[] findSlice(int[] arr, int stIndx, int enIndx) {

        int[] slice_arr = IntStream.range(stIndx, enIndx).map(i -> arr[i]).toArray();

        return slice_arr;
    }

    public static void main(String args[]) {

        int[] arr = { 20, 65, 87, 19, 55, 93, 76, 98, 54, 21, 657 };
        int stIndx = 2, enIndx = 8;

        int[] slice_arr = findSlice(arr, stIndx, enIndx + 1);

        System.out.println("Slice of array for the specific range is: " + Arrays.toString(slice_arr));
    }
}

Um den Code auszuführen, speichern Sie das Programm als Java-Datei und führen Sie es in Ihrer Java-IDE aus.

Java-Array-Splice - Ausgabe 3

Author: Shiv Yadav
Shiv Yadav avatar Shiv Yadav avatar

Shiv is a self-driven and passionate Machine learning Learner who is innovative in application design, development, testing, and deployment and provides program requirements into sustainable advanced technical solutions through JavaScript, Python, and other programs for continuous improvement of AI technologies.

LinkedIn

Verwandter Artikel - Java Array

  • So konvertieren Sie Byte-Array in Hex-String in Java
  • Wie man zwei Arrays in Java verkettet
  • Entfernen Sie Duplikate aus dem Array in Java
  • Assoziatives Array in Java
  • Vergleichen Arrays in Java