Arrays zusammenfügen: Unterschied zwischen den Versionen
Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen (Die Seite wurde neu angelegt: „Manchmal stellt sich die Frage, wie man also 2 Arrays miteinander verknüpft, also aus 2 Arrays ein einziges macht. ==Arrays verketten (bis Java 7)== ==Arra…“) |
K |
||
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | Manchmal stellt sich die Frage, wie man | + | Manchmal hat mal 2 oder mehrere Arrays und es stellt sich die Frage, wie man diese miteinander verknüpft, also z.B. aus 2 [[Array|Arrays]] ein einziges macht. |
==Arrays verketten (bis Java 7)== | ==Arrays verketten (bis Java 7)== | ||
Zeile 5: | Zeile 5: | ||
==Arrays verketten (ab Java 8)== | ==Arrays verketten (ab Java 8)== | ||
+ | Seit Java 8 stehen dem Entwickler mit der {{JAPI|Stream}}-API mächtige Werkzeuge zur Verarbeitung und Filterung von Daten aus Datensammlungen zur Verfügung. So auch zum Verknüpfen von Arrays. | ||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
+ | import java.util.Arrays; | ||
+ | import java.util.stream.Stream; | ||
+ | |||
+ | [...] | ||
+ | |||
String[] fruits = new String[] {"Apfel", "Birne", "Kirsche", "Himbeere"}; | String[] fruits = new String[] {"Apfel", "Birne", "Kirsche", "Himbeere"}; | ||
String[] vegetables = new String[] {"Tomate", "Gurke", "Kürbis", "Kartoffel"}; | String[] vegetables = new String[] {"Tomate", "Gurke", "Kürbis", "Kartoffel"}; | ||
− | String[] fruitsAndVegetables = Stream.concat(Arrays.stream( | + | String[] fruitsAndVegetables = Stream.concat(Arrays.stream(fruits), |
− | + | Arrays.stream(vegetables)).toArray(String[]::new); | |
+ | |||
+ | //Ausgabe: | ||
+ | System.out.println(Arrays.toString(fruitsAndVegetables)); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ==char-Arrays zusammenfügen== | ||
+ | In Java 8 gibt es derzeit keine einfache Möglichkeit mehrere [[char]]-Arrays mit Hilfe der {{JAPI|Stream}}-API zu einem char-Array zusammenzuzsetzen. | ||
+ | |||
+ | Eine mögliche Lösung char-Arrays zusammenzufügen nimmt daher den Umweg über {{JAPI|StringBuilder}}. | ||
+ | <syntaxhighlight lang="java"> | ||
+ | import java.util.Arrays; | ||
+ | |||
+ | [...] | ||
+ | |||
+ | char[] c1 = new char[] {'c', 'h', 'a', 'r', '-'}; | ||
+ | char[] c2 = new char[] {'A', 'r', 'r', 'a', 'y'}; | ||
+ | StringBuilder sb = new StringBuilder(); | ||
+ | sb.append(c1).append(c2); | ||
+ | char[] c3 = sb.toString().toCharArray(); | ||
//Ausgabe: | //Ausgabe: | ||
− | + | System.out.println(Arrays.toString(c3)); | |
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | ==Siehe auch== | ||
+ | *[[Die Klasse java.util.Arrays]] | ||
[[Kategorie:Java]] | [[Kategorie:Java]] | ||
+ | [[Kategorie:Java-Codeschnipsel]] |
Aktuelle Version vom 18. April 2020, 09:54 Uhr
Manchmal hat mal 2 oder mehrere Arrays und es stellt sich die Frage, wie man diese miteinander verknüpft, also z.B. aus 2 Arrays ein einziges macht.
Inhaltsverzeichnis
Arrays verketten (bis Java 7)
Arrays verketten (ab Java 8)
Seit Java 8 stehen dem Entwickler mit der Stream
-API mächtige Werkzeuge zur Verarbeitung und Filterung von Daten aus Datensammlungen zur Verfügung. So auch zum Verknüpfen von Arrays.
import java.util.Arrays;
import java.util.stream.Stream;
[...]
String[] fruits = new String[] {"Apfel", "Birne", "Kirsche", "Himbeere"};
String[] vegetables = new String[] {"Tomate", "Gurke", "Kürbis", "Kartoffel"};
String[] fruitsAndVegetables = Stream.concat(Arrays.stream(fruits),
Arrays.stream(vegetables)).toArray(String[]::new);
//Ausgabe:
System.out.println(Arrays.toString(fruitsAndVegetables));
char-Arrays zusammenfügen
In Java 8 gibt es derzeit keine einfache Möglichkeit mehrere char-Arrays mit Hilfe der Stream
-API zu einem char-Array zusammenzuzsetzen.
Eine mögliche Lösung char-Arrays zusammenzufügen nimmt daher den Umweg über StringBuilder
.
import java.util.Arrays;
[...]
char[] c1 = new char[] {'c', 'h', 'a', 'r', '-'};
char[] c2 = new char[] {'A', 'r', 'r', 'a', 'y'};
StringBuilder sb = new StringBuilder();
sb.append(c1).append(c2);
char[] c3 = sb.toString().toCharArray();
//Ausgabe:
System.out.println(Arrays.toString(c3));