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 also 2 Arrays miteinander verknüpft, also aus 2 Arrays ein einziges macht.
+
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(pageKeys),  
+
String[] fruitsAndVegetables = Stream.concat(Arrays.stream(fruits),  
    Arrays.stream(unitKeys)).toArray(String[]::new);
+
      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:
fruitsAndVegetables.foreach((name) -> {
+
System.out.println(Arrays.toString(c3));
  System.out.println(name);
 
});
 
 
</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.

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));


Siehe auch