Java: Gibt es eine einfache Möglichkeit, eine Teilmenge eines Arrays auszuwählen?

Lesezeit: 1 Minute

Benutzer-Avatar
NullVoxPopuli

Ich habe ein String[] die mindestens 2 Elemente hat.

Ich möchte eine neue erstellen String[] das hat Elemente 1 durch den Rest von ihnen. Also … im Grunde einfach den ersten überspringen.

Kann man das in einer Zeile machen? leicht?

Benutzer-Avatar
Bozo

Verwenden copyOfRangeverfügbar seit Java 1.6:

Arrays.copyOfRange(array, 1, array.length);

Zu den Alternativen gehören:

  • Der Endindex ist exklusiv

    – Markus Peters

    27. Januar 2011 um 21:49 Uhr

  • Warte, heißt das also, ich brauche eine +1 für die .length?

    – NullVoxPopuli

    27. Januar 2011 um 22:26 Uhr

  • Nein, da Arrays 0-basiert sind. Halboffene Bereiche und 0-basierte Indizierung funktionieren so gut zusammen.

    – ILMTitan

    27. Januar 2011 um 22:28 Uhr


  • Entschuldigung, Java-Leute, aber das sieht aus dem Python-Code einfach absurd aus

    – Matthäus

    12. März 2020 um 13:40 Uhr

String[] subset = Arrays.copyOfRange(originalArray, 1, originalArray.length);

Siehe auch:

Benutzer-Avatar
Grzegorz Piwowarek

Stream API könnte auch verwendet werden:

String[] array = {"A", "B"};

Arrays.stream(array).skip(1).toArray(String[]::new);

Allerdings sollte die Antwort von Bozho bevorzugt werden.

  • @AndreaBergonzo Leider haben sie Methoden für bereitgestellt String[], int[], long[], double[] aber nicht für byte[] 🙂

    – Grzegorz Piwowarek

    24. April 2018 um 17:17 Uhr


1180570cookie-checkJava: Gibt es eine einfache Möglichkeit, eine Teilmenge eines Arrays auszuwählen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy