Wie kann man zwei Arrays miteinander verbinden?
Zur Demonstration sind im Beispiel zwei zweidimensionale String-Arrays deklariert. (Das Verketten eindimensionaler Arrays geschieht natürlich auf die gleiche Weise.) Zunächst wird ein neues Array des gleichen Typs erstellt, das die Größe der Summe der zu verkettenden Arrays besitzt. Es wird als Kopie eines der beiden Ausgangsarrays initialisiert. Dieses Array belegt die Positionen am Anfang des neuen Arrays. Die verbleibenden Positionen am Ende des neuen Arrays werden mit null belegt.
import java.util.Arrays;
import javax.swing.SwingUtilities;
public class ArraysVerbinden {
void create() {
String[][] arr1 = { new String[] { "00", "01", "02" },
new String[] { "10", "11", "12" },
new String[] { "20", "21", "22" } };
String[][] arr2 = { new String[] { "aa", "ab", "ac" },
new String[] { "ba", "bb", "bc" },
new String[] { "ca", "cb", "cc" } };
int newLength = arr1.length + arr2.length;
String[][] s = new String[newLength][3];
s = Arrays.copyOf(arr1, newLength);
System.arraycopy(arr2, 0, s, arr1.length, arr2.length);
for (int i = 0; i < s.length; i++) {
for (int j = 0; j < s[i].length; j++) {
System.out.println(s[i][j]);
}
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new ArraysVerbinden().create());
}
}
Die Methode System.arraycopy führt die eigentliche Verknüpfung durch. Sie nimmt fünf Parameter entgegen.
- Das anzuhängende Array, von dem auch nur ein Teil verwendet werden kann
- Die Position des ersten anzufügenden Elementes (hier 0, also die erste Position)
- Das Zielarray
- Die Position, an der das erste Element angefügt werden soll
- Die Anzahl der anzuhängenden Elemente
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.