Slicen ein Array in Java
- Array-Slicing in Java
- Aufteilen eines Arrays durch Duplizieren von Elementen in Java
-
Slicen Sie ein Array mit der Methode
copyOfRange()
in Java - Aufteilen eines Arrays mithilfe des Java 8-Streams
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:
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:
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.
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