Dieser Artikel beschreibt die Java -Implementierungsmethode zur Kombination von zwei Arrays in einem. Teilen Sie es für Ihre Referenz wie folgt weiter:
Wie fusioniere ich in Java zwei String [] in eine?
Es scheint eine sehr einfache Frage zu sein. Wie man den Code effizient und präzise schreibt, ist es jedoch immer noch wert, darüber nachzudenken. Hier sind vier Methoden. Siehe Auswahl.
1. Apache-Commons
Dies ist der einfachste Weg. In Apache-Commons gibt es eine ArrayUtils.addAll(Object[], Object[]) -Methode, mit der wir sie in einer Zeile tun können:
String[] both = (String[]) ArrayUtils.addAll(first, second);
Die anderen müssen die in JDK bereitgestellten Methoden selbst anrufen und sie einwickeln.
Zur Bequemlichkeit werde ich eine Werkzeugmethode definieren, die zwei Arrays miteinander kombinieren kann:
static String[] concat(String[] first, String[] second) {}
Zu allgemeinem Zweck werde ich Generika verwenden, um nach Möglichkeit zu definieren, damit nicht nur String [] verwendet werden kann, sondern auch andere Arten von Arrays verwendet werden können:
static <T> T[] concat(T[] first, T[] second) {}
Wenn Ihr JDK nicht die Generika unterstützt oder nicht verwenden kann, können Sie T -String manuell ändern.
2. System.ArrayCopy ()
static String [] concat (String [] A, String [] b) {String [] c = new String [A.Length+B.Length]; System.ArrayCopy (A, 0, C, 0, A.Length); System.ArrayCopy (B, 0, C, A.Length, B.Length); zurück c;}Verwenden Sie wie folgt:
String [] beide = concat (zuerst, zweitens);
3.. Arrays.copyof ()
In Java6 gibt es eine Arrays.copyOf() , die eine generische Funktion ist. Wir können es verwenden, um eine allgemeinere Zusammenführungsmethode zu schreiben:
public static <t> t [] concat (t [] zuerst, t [] zweiten) {t [] result = arrays.copyof (zuerst, zuerst, Länge + zweite.länge); System.ArrayCopy (zweite, 0, Ergebnis, first.length, zweite.länge); Rückgabeergebnis;}Wenn Sie mehrere verschmelzen möchten, können Sie Folgendes schreiben:
public static <t> t [] concatall (t [] zuerst, t [] ... rest) {int TOTALLENGE = first.Length; für (t [] Array: rest) {TotalLength += Array.length; } T [] result = arrays.copyof (zuerst, Totallegth); int offset = first.length; für (t [] Array: rest) {System.ArrayCopy (Array, 0, Ergebnis, Offset, Array.length); Offset += Array.Length; } Rückgabeergebnis;}Verwenden Sie wie folgt:
String [] beide = concat (zuerst, zweitens); String [] more = concat (zuerst, zweitens, dritten, vierten);
4. Array.Newinstance
Sie können auch Array.newInstance verwenden, um ein Array zu generieren:
private static <t> t [] concat (t [] a, t [] b) {endgültig int Alen = A.Length; endgültige Int -Mischung = B.Length; if (Alen == 0) {return b; } if (blen == 0) {return a; } Final t [] result = (t []) java.lang.reflect.array. NewInstance (A.getClass (). getComponentType (), Alen + Blend); System.ArrayCopy (a, 0, Ergebnis, 0, Alen); System.ArrayCopy (B, 0, Ergebnis, Alen, Mischung); Rückgabeergebnis;}Weitere Informationen zu Java -verwandten Inhalten finden Sie in den Themen dieser Website: "Zusammenfassung der Java -Array -Betriebsfähigkeiten", "Zusammenfassung der Java -Charaktere und der String -Betriebsfähigkeiten", "Zusammenfassung der Java -Mathematischen Betriebskenntnisse", "Tutorial zu Java -Datenstrukturen und Algorithmen" und "Zusammenfassung der Dom -Node -Fähigkeiten der Java -Operation" "Fertigkeiten" und "Zusammenfassung der Dom -Node -Fähigkeiten der Java" "," Fertigkeiten der Java "und" Zusammenfassung der Java -Operation Dom Node Skills ""
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.