Heim > Java > javaLernprogramm > Wie können Sie primitive Variablen in Java austauschen, wenn die Parameterübergabe nach Wert erfolgt?

Wie können Sie primitive Variablen in Java austauschen, wenn die Parameterübergabe nach Wert erfolgt?

Linda Hamilton
Freigeben: 2024-10-27 04:51:30
Original
563 Leute haben es durchsucht

How Can You Swap Primitive Variables in Java When Parameter Passing is by Value?

Austauschen primitiver Variablen in Java: Überwindung der Wertübergabe

In Java erfolgt die Parameterübergabe grundsätzlich nach Wert, was eine Herausforderung darstellt, wenn versucht wird, primitive Variablen innerhalb einer Methode auszutauschen . Eine naive Implementierung wie:

<code class="java">void swap(int a, int b) {
    int temp = a;
    a = b;
    b = temp;
}</code>
Nach dem Login kopieren

ändert die ursprünglichen Variablen außerhalb der Methode nicht wirklich. Um dieses Problem anzugehen, gibt es hier zwei unkonventionelle Ansätze:

Return-Assign Pattern

Diese Technik ermöglicht das Austauschen durch Nutzung der Reihenfolge von Operationen in Methodenaufrufen:

<code class="java">int swap(int a, int b) {  // usage: y = swap(x, x=y);
    return a;
}</code>
Nach dem Login kopieren

Wann Beim Aufruf von swap(x, x=y) wird der Wert von x vor der Zuweisung an x ​​an swap übergeben. Wenn also a zurückgegeben und y zugewiesen wird, vertauscht es effektiv die Werte von x und y.

Generischer Swapper mit variadischen Parametern

Für eine allgemeinere Lösung kann eine generische Methode definiert werden die eine beliebige Anzahl von Objekten desselben Typs austauschen kann:

<code class="java"><T> T swap(T... args) {   // usage: z = swap(a, a=b, b=c, ... y=z);
    return args[0];
}</code>
Nach dem Login kopieren

Der Aufruf dieser Methode als z = swap(a, a=b, b=c) tauscht die Werte von a, b und c aus , den endgültigen Wert z.

zuweisen

Das obige ist der detaillierte Inhalt vonWie können Sie primitive Variablen in Java austauschen, wenn die Parameterübergabe nach Wert erfolgt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage