Holen Sie sich die Teilmenge eines Arrays in Java

Sheeraz Gul 12 Oktober 2023
  1. Verwenden Sie die Methode Arrays.copyOf(), um die Teilmenge eines Arrays abzurufen
  2. Verwenden Sie die Methode Arrays.copyOfRange(), um die Teilmenge eines Arrays abzurufen
  3. Verwenden Sie die Stream.IntStream-Methode von Java 8, um die Teilmenge eines Arrays abzurufen
  4. Verwenden Sie die Methode System.arraycopy(), um die Teilmenge eines Arrays abzurufen
  5. Verwenden Sie Apache Commons Lang, um die Teilmenge eines Arrays abzurufen
  6. Verwenden Sie die Listenkonvertierung, um die Teilmenge eines Arrays abzurufen
  7. Verwenden Sie die benutzerdefinierte Methode, um die Teilmenge eines Arrays abzurufen
Holen Sie sich die Teilmenge eines Arrays in Java

Dieses Tutorial zeigt einige Methoden, um die Teilmenge eines Arrays in Java zu erhalten.

Verwenden Sie die Methode Arrays.copyOf(), um die Teilmenge eines Arrays abzurufen

Arrays.copyOf() ist eine eingebaute Methode in Java Util, die ein bestimmtes Array in ein anderes Array des angegebenen Typs kopiert. Diese Methode kann die Teilmenge eines Arrays abrufen, funktioniert jedoch nicht, wenn das Teilarray an einem anderen Index als dem ersten Index beginnt.

Beispiel:

package delftstack;

import java.util.Arrays;

public class Array_Subset {
  public static void main(String[] args) {
    String[] demo_array = new String[] {"Delftstack1", "Delftstack2", "Delftstack3", "Delftstack4",
        "Delftstack5", "Delftstack6", "Delftstack7"};
    int End_Index = 5;

    String[] Subset = Arrays.copyOf(demo_array, End_Index, String[].class);
    System.out.println(Arrays.toString(Subset));
  }
}

Der obige Code kopiert eine Teilmenge des angegebenen Arrays vom Startindex bis zum angegebenen End_index.

Ausgang:

[Delftstack1, Delftstack2, Delftstack3, Delftstack4, Delftstack5]

Verwenden Sie die Methode Arrays.copyOfRange(), um die Teilmenge eines Arrays abzurufen

Die Methode Arrays.copyOfRange() wird verwendet, um eine Teilmenge aus einem Array mit gegebenen Anfangs- und Endindizes zu kopieren. Die Teilmenge wird in ein anderes Array kopiert.

Beispiel:

package delftstack;

import java.util.Arrays;

public class Array_Subset {
  public static <Demo> Demo[] Array_Subset(Demo[] Array, int Begin_Index, int End_Index) {
    return Arrays.copyOfRange(Array, Begin_Index, End_Index);
  }

  public static void main(String[] args) {
    String[] Demo_Array = {"Delftstack1", "Delftstack2", "Delftstack3", "Delftstack4",
        "Delftstack5", "Delftstack6", "Delftstack7"};
    int Begin_Index = 2;
    int End_Index = 7;

    String[] Subset = Array_Subset(Demo_Array, Begin_Index, End_Index);
    System.out.println(Arrays.toString(Subset));
  }
}

Ausgang:

[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]

Verwenden Sie die Stream.IntStream-Methode von Java 8, um die Teilmenge eines Arrays abzurufen

Wir können auch Java Stream verwenden, um die Teilmenge eines Arrays zu erhalten. Es wird ein Strom von Elementen zwischen dem angegebenen Bereich abgerufen und in ein Array eingefügt.

Beispiel:

package delftstack;

import java.util.Arrays;
import java.util.stream.IntStream;

public class Array_Subset {
  public static void main(String[] args) {
    String[] Demo_Arrary = {"Delftstack1", "Delftstack2", "Delftstack3", "Delftstack4",
        "Delftstack5", "Delftstack6", "Delftstack7"};
    int Begin_Index = 2;
    int End_Index = 7;

    String[] Subset = IntStream.range(Begin_Index, End_Index)
                          .mapToObj(x -> Demo_Arrary[x])
                          .toArray(String[] ::new);

    System.out.println(Arrays.toString(Subset));
  }
}

Ausgang:

[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]

Verwenden Sie die Methode System.arraycopy(), um die Teilmenge eines Arrays abzurufen

Die Methode System.arraycopy() kann eine Teilmenge aus einem Array mit gegebenen Anfangs- und Endindizes kopieren. Die Teilmenge wird in ein anderes Array kopiert.

Beispiel:

package delftstack;

import java.util.Arrays;

public class Array_Subset {
  public static void main(String[] args) {
    String[] Demo_Array = new String[] {"Delftstack1", "Delftstack2", "Delftstack3", "Delftstack4",
        "Delftstack5", "Delftstack6", "Delftstack7"};
    int Begin_Index = 2;
    int End_Index = 7;

    String[] Subset = new String[End_Index - Begin_Index];
    System.arraycopy(Demo_Array, Begin_Index, Subset, 0, Subset.length);

    System.out.println(Arrays.toString(Subset));
  }
}

System.arraycopy() funktioniert ähnlich wie Arrays.copyOfRange(). Es kopiert eine Teilmenge eines Arrays innerhalb eines angegebenen Bereichs.

Ausgang:

[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]

Verwenden Sie Apache Commons Lang, um die Teilmenge eines Arrays abzurufen

Die Klasse ArrayUtils bietet die Funktionalität, um eine Teilmenge eines Arrays mit der Methode subarray() zu erhalten. Diese Methode gibt ein Objekt mit dem angegebenen Elementbereich zurück.

Beispiel:

package delftstack;

import java.util.Arrays;
import org.apache.commons.lang3.ArrayUtils;

public class Array_Subset {
  public static void main(String[] args) {
    String[] Demo_Array = new String[] {"Delftstack1", "Delftstack2", "Delftstack3", "Delftstack4",
        "Delftstack5", "Delftstack6", "Delftstack7"};
    int Begin_Index = 2;
    int End_Index = 7;

    Object[] Subset = ArrayUtils.subarray(Demo_Array, Begin_Index, End_Index);
    System.out.println(Arrays.toString(Subset));
  }
}

Ausgang:

[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]

Verwenden Sie die Listenkonvertierung, um die Teilmenge eines Arrays abzurufen

Diese Methode konvertiert ein Array in eine Liste und verwendet die Methode subList(), um eine Teilmenge eines Arrays innerhalb des angegebenen Bereichs abzurufen und in ein anderes Array zu kopieren.

Beispiel:

package delftstack;

import java.util.Arrays;

public class Array_Subset {
  public static void main(String[] args) {
    String[] Demo_Array = new String[] {"Delftstack1", "Delftstack2", "Delftstack3", "Delftstack4",
        "Delftstack5", "Delftstack6", "Delftstack7"};
    int Begin_Index = 2;
    int End_Index = 7;

    String[] Subset =
        Arrays.asList(Demo_Array).subList(Begin_Index, End_Index).toArray(new String[0]);
    System.out.println(Arrays.toString(Subset));
  }
}

Ausgang:

[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]

Verwenden Sie die benutzerdefinierte Methode, um die Teilmenge eines Arrays abzurufen

Lassen Sie uns unsere Methode schreiben, um die Teilmenge eines Arrays zu erhalten. Wir können die for-Schleife verwenden, um die Teilmenge eines Arrays innerhalb des angegebenen Bereichs zu erhalten.

Beispiel:

package delftstack;

import java.util.Arrays;

public class Array_Subset {
  public static void main(String[] args) {
    String[] Demo_Array = new String[] {"Delftstack1", "Delftstack2", "Delftstack3", "Delftstack4",
        "Delftstack5", "Delftstack6", "Delftstack7"};
    int Begin_Index = 2;
    int End_Index = 7;

    String[] Subset = new String[End_Index - Begin_Index];
    for (int x = 0; x < Subset.length; x++) {
      Subset[x] = Demo_Array[Begin_Index + x];
    }
    System.out.println(Arrays.toString(Subset));
  }
}

Ausgang:

[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Verwandter Artikel - Java Array