首頁  >  文章  >  Java  >  當參數以值傳遞時,如何在 Java 中交換原始變數?

當參數以值傳遞時,如何在 Java 中交換原始變數?

Linda Hamilton
Linda Hamilton原創
2024-10-27 04:51:30427瀏覽

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

在Java 中交換原始變數:克服值傳遞

在Java 中,參數傳遞本質上是按值傳遞的,這在嘗試在方法內交換原始變數時帶來了挑戰。簡單的實現,例如:

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

實際上不會修改方法外部的原始變數。為了解決這個問題,這裡有兩種非常規的方法:

返回分配模式

此技術允許透過利用方法呼叫中的操作順序進行交換:

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

何時呼叫swap(x, x=y),x 的值將在賦值給x 之前傳遞到swap 中。因此,當傳回 a 並將其指派給 y 時,它有效地交換了 x 和 y 的值。

具有可變參數的通用交換器

對於更通用的解決方案,可以定義一個通用方法可以交換任意數量的相同類型的對象:

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

將此方法呼叫為z = swap(a, a=b, b=c) 將交換a、b 和c 的值,將最終值賦給z。

以上是當參數以值傳遞時,如何在 Java 中交換原始變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn