Heim Java javaLernprogramm Wie kopiert die Methode Arrays.copyOf() in Java ein Array in ein neues Array?

Wie kopiert die Methode Arrays.copyOf() in Java ein Array in ein neues Array?

Nov 18, 2023 pm 01:33 PM
java arrays copyof()

Wie kopiert die Methode Arrays.copyOf() in Java ein Array in ein neues Array?

Wie kopiert die Methode Arrays.copyOf() in Java ein Array in ein neues Array?

In Java ist Array eine sehr verbreitete Datenstruktur, und die Arrays-Klasse von Java bietet uns viele praktische Methoden für den Umgang mit Arrays. Unter diesen ist die Methode Arrays.copyOf() eine sehr nützliche Methode zum Kopieren eines Arrays in ein neues Array. In diesem Artikel werden die Verwendungs- und Implementierungsprinzipien dieser Methode vorgestellt und spezifische Codebeispiele bereitgestellt.

Verwendung

Die Methode Arrays.copyOf() hat zwei Parameter: das ursprüngliche Array und die Länge des neuen Arrays nach dem Kopieren. Diese Methode erstellt ein neues Array und kopiert die Elemente aus dem ursprünglichen Array in das neue Array. Wenn die Länge des ursprünglichen Arrays größer oder gleich der Länge des neuen Arrays ist, wird der vordere Teil des ursprünglichen Arrays kopiert. Wenn die Länge des ursprünglichen Arrays kleiner als die Länge des neuen Arrays ist, werden alle Elemente des ursprünglichen Arrays in das neue Array kopiert und die verbleibenden Elemente werden mit dem Standardwert des Array-Elementtyps gefüllt.

Das Folgende ist ein Beispiel für den Aufruf der Methode Arrays.copyOf():

int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOf(arr1, 3) ;

In diesem Beispiel erstellen wir ein ganzzahliges Array arr1 mit 5 Elementen. Wir rufen die Methode Arrays.copyOf() auf, um arr1 in ein anderes Array namens arr2 zu kopieren und die Länge von arr2 auf 3 zu setzen. Da die Länge des Arrays arr1 5 und die Länge von arr2 3 beträgt, kopiert die Methode Arrays.copyOf() nur die ersten 3 Elemente von arr1 nach arr2. Infolgedessen enthält arr2 jetzt {1, 2, 3}.

Dies ist nur das einfachste Beispiel für die Verwendung der Methode Arrays.copyOf(). Als Nächstes schauen wir uns einige komplexere Verwendungszwecke und Beispiele an.

Zweidimensionales Array kopieren

Die Methode Arrays.copyOf() eignet sich nicht nur für eindimensionale Arrays, sie kann auch zum Kopieren zweidimensionaler Arrays verwendet werden. Im folgenden Beispiel erstellen wir ein zweidimensionales Integer-Array mit dem Namen „matrix1“ und kopieren es mithilfe der Methode „Arrays.copyOf()“ in ein anderes Array mit dem Namen „matrix2“:

int[][] matrix1 = {{ 1, 2, 3}, {4, 5, 6}};
int[][] matrix2 = Arrays.copyOf(matrix1, 2);

In diesem Beispiel kopieren wir Matrix1 nach Matrix2 und die Länge von Matrix2 wird auf 2 gesetzt. Da „matrix1“ ein zweidimensionales Array ist und die Methode „Arrays.copyOf()“ nur ein eindimensionales Array kopieren kann, erstellen wir ein neues zweidimensionales Array mit einer Länge von 2 und sein erstes Element ist das erste Element der Zeile „matrix1“. , sein zweites Element ist die zweite Zeile von Matrix1. Auf diese Weise können wir ein 2D-Array in ein anderes Array kopieren.

Bestimmten Bereich des Arrays kopieren

In manchen Fällen möchten wir möglicherweise nur einen bestimmten Bereich von Elementen aus dem ursprünglichen Array kopieren. Die Methode Arrays.copyOfRange() ist eine sehr nützliche Methode, mit der wir angeben können, welcher Index im Originalarray mit dem Kopieren beginnen und bei welchem ​​Index enden soll. Das Folgende ist ein Beispiel für die Methode Arrays.copyOfRange():

int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOfRange(arr1, 1, 4);

In diesem Beispiel erstellen wir ein Integer-Array namens arr1, das 5 Elemente enthält. Wir rufen die Methode Arrays.copyOfRange() auf und weisen sie arr2 zu. Wir übergeben arr1 als ersten Parameter an die Methode und 1 und 4 als zweiten und dritten Parameter. Das bedeutet, dass wir nur ab Index 1 von arr1 (d. h. zweites Element) bis Index 4 (d. h. fünftes Element) kopieren möchten, Index 4 nicht einschließen. Infolgedessen enthält arr2 jetzt {2, 3, 4}.

Da die Methode Arrays.copyOfRange() nur einen Teil des ursprünglichen Arrays kopiert, können wir auf diese Weise einen bestimmten Bereich von Elementen aus dem ursprünglichen Array kopieren.

Implementierungsprinzip

Die Methode Arrays.copyOf() ist eigentlich eine vereinfachte Implementierung der Methode System.arraycopy(). Die Methode System.arraycopy() ist eine der schnellsten Methoden in Java zum Kopieren von Elementen zwischen Arrays und bietet eine höhere Flexibilität und Leistung als die Methode Arrays.copyOf(). Darüber hinaus ist die Methode System.arraycopy() auch die grundlegende Implementierungsmethode der Methode Arrays.copyOf().

Das Folgende ist die Quellcode-Implementierung der Arrays.copyOf()-Methode:

public static T[] copyOf(T[] original, int newLength) {

return (T[]) copyOf(original, newLength, original.getClass());
Nach dem Login kopieren

}

public static < T,U> ; T[] copyOf(U[] original, int newLength, Class newType) {

@SuppressWarnings("unchecked")
T[] copy = ((Object)newType == (Object)Object[].class)
    ? (T[]) new Object[newLength]
    : (T[]) Array.newInstance(newType.getComponentType(), newLength);
System.arraycopy(original, 0, copy, 0,
                 Math.min(original.length, newLength));
return copy;
Nach dem Login kopieren

}

Wie aus der Code-Implementierung ersichtlich ist, die erste Zeile der Arrays .copyOf()-Methode Eine überladene Version der copyOf()-Methode wird aufgerufen und das von der Methode zurückgegebene Ergebnis wird an den Aufrufer zurückgegeben. Diese Methode akzeptiert ein ursprüngliches Array und die Länge des neuen Arrays als Parameter und übergibt sie an die zweite Methode copyOf().

Die zweite Methode copyOf() führt die folgenden Schritte aus, um ein neues Array zu erstellen und Elemente zu kopieren:

  • Erstellen Sie ein neues generisches Array mit dem newType-Parameter.
  • Erstellen Sie ein neues Array mit dem Komponententyp des ursprünglichen Arrays (wenn newType nicht Object[] ist).
  • Verwenden Sie die Methode System.arraycopy(), um die Elemente des ursprünglichen Arrays in das neue Array zu kopieren.
  • Gib das neue kopierte Array zurück.

Da die Implementierung der Arrays.copyOf()-Methode auf der System.arraycopy()-Methode basiert, folgt sie den Regeln und Einschränkungen dieser Methode, z. B. dem Nichtkopieren von Arrays, die zwei verschiedene Typen umfassen.

Zusammenfassung

Die Methode Arrays.copyOf() ist eine praktische Möglichkeit, ein Array in Java zu kopieren. Sie kann schnell ein neues Array erstellen und die Elemente des ursprünglichen Arrays in das neue Array kopieren. Mit dieser Methode können ein- und zweidimensionale Arrays sowie ein bestimmter Bereich von Elementen kopiert werden. Die Implementierung der Arrays.copyOf()-Methode basiert auf der System.arraycopy()-Methode und unterliegt daher denselben Regeln und Einschränkungen. Beim Umgang mit Arrays ist die Arrays-Klasse ein sehr nützliches Werkzeug, das uns dabei helfen kann, Arrays einfacher zu handhaben und zu manipulieren.

Das obige ist der detaillierte Inhalt vonWie kopiert die Methode Arrays.copyOf() in Java ein Array in ein neues Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Zeitstempel für Datum in Java Zeitstempel für Datum in Java Aug 30, 2024 pm 04:28 PM

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Java -Programm, um das Kapselvolumen zu finden Java -Programm, um das Kapselvolumen zu finden Feb 07, 2025 am 11:37 AM

Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Oct 13, 2024 pm 01:32 PM

Java ist eine beliebte Programmiersprache, die sowohl von Anfängern als auch von erfahrenen Entwicklern erlernt werden kann. Dieses Tutorial beginnt mit grundlegenden Konzepten und geht dann weiter zu fortgeschrittenen Themen. Nach der Installation des Java Development Kit können Sie das Programmieren üben, indem Sie ein einfaches „Hello, World!“-Programm erstellen. Nachdem Sie den Code verstanden haben, verwenden Sie die Eingabeaufforderung, um das Programm zu kompilieren und auszuführen. Auf der Konsole wird „Hello, World!“ ausgegeben. Mit dem Erlernen von Java beginnt Ihre Programmierreise, und wenn Sie Ihre Kenntnisse vertiefen, können Sie komplexere Anwendungen erstellen.

See all articles