java變數交換
㈠ java中交換兩個整數類型的變數
^ 在java中是位運算符,異或運算。你圈的那三行核心代碼就是通過異或運算來交換變數A、B的值。
關於異或運算:異或運算
publicclassTest{
publicstaticvoidmain(String[]args){
intA=14;
intB=5;
A=A^B;
B=B^A;
A=A^B;
System.out.println("A="+A);//A=5
System.out.println("B="+B);//B=14
}
}
執行結果
inttemp=A;//引入一個中間變數
A=B;
B=temp;
㈡ java中如何交換兩個引用類型的變數
同一類的可以,如 A a=new A("2");System.out.println(a.hashcode());//及a的物理地址(與內存地址相對應)
A b=new A("1");System.out.println(b.hashcode());//b的物理地址
A c=a;
a=b;
b=c;
System.out.println(a.hashcode());
System.out.println(b.hashcode());
輸出的結果將會是a和b的hashcode()互換了,這說明了他們的內存和物理地址都互換了
㈢ Java中,先聲明兩個整型變數並賦值,然後將兩個變數的值進行交換,求解
inti=5;
intj=6;
i=i+j;//5+6=11
j=i-j;//11-6=5
i=i-j;//11-5=6
兩個變數之和不超出范圍就沒問題
㈣ java程序問題,如何用方法來交換兩個整型變數的值
這個是基本數據類型傳遞的是值而不是指針,如樓上所說,實現交換比較復雜,用反射可以實現,我見過的方法很麻煩,比較簡單但不實用的實現方式,給你個連接:http://blog.csdn.net/wbruce_leew/article/details/6759198
㈤ 怎麼在java上完成,實現兩個int類型變數的交換,不使用中間變數
方法有很多,這里舉出兩種常用的:
方法1:使用^操作來實現
int
x
=
10;
//用二進製表示:x=0b1010;
int
y
=
15;
//用二進製表示:x=0b1111;
System.out.println("x="+x+"
y="+y);
x
=
x^y;
//x^y=
0b1010^0b1111
=
0b0101
y
=
x^y;
//x^y=
0b0101^0b1111
=
0b1010
=10
x
=
x^y;
//x^y=
0b0101^0b1010
=
0b1111
=15
System.out.println("x="+x+"
y="+y);
方法2:使用+,-操作來實現
int
x
=
10;
int
y
=
15;
System.out.println("x="+x+"
y="+y);
x
=
x+y;
//x=
10+15=25
y
=
x-y;
//y=
25-15=10
x
=
x-y;
//x=
25-10=15
System.out.println("x="+x+"
y="+y);
結果:
x=10
y=15
x=15
y=10
早期為了減少中間變數對計算機內存的佔用,採用中間的方法來交換數據。其實這種交換並不完美,如果交換的兩個數都很大,可能會內存溢出。在現在的開發中建議使用中間值來交換數值。
㈥ java如何交換a和b的值
是兩個變數的值嗎 用一個中間變數temp就行了 temp=a a=b b=temp
㈦ java程序中,怎麼互換2個變數的值
用第三個變數來存儲。
就是再申請一個變數。
int
num1=10;
int
num2=8;
int
temp=0
temp=num1;//將num1的值賦給中間變數temp
num1=num2;//將num2的值賦給num1;
num2=temp;//將temp的值賦給num2,num1和num2的值就互換了。
這個方法是最通用的,記住這個就行了。
㈧ 用JAVA寫「對兩個整數變數的值進行互換(不需要第三方變數)」程序
JAVA對兩個整數變數的值進行互換(不需要第三方變數)的程序如下:
方法一(加減法):
a=a+b;
b=a-b;
a=a-b;
方法二(異或運算):
a=a^b;
b=a^b;
a=a^b;
代碼實現如下:
publicclassDemo{
publicstaticvoidmain(String[]args){
intm=2,n=3;
//method_1(m,n);
method_2(m,n);
}
/**
*使用異或^
*明白一個數,如果異或同一個數兩次,那麼就等於本身
*/
privatestaticvoidmethod_3(intm,intn){
m=m^n;
n=m^n;
m=m^n;
System.out.println("m="+m+" n="+n);
}
/**
*使用自身的數組,加減運算
*/
privatestaticvoidmethod_2(intm,intn){
m=m+n;
n=m-n;
m=m-n;
System.out.println("m="+m+" n="+n);
}
}
㈨ 在JAVA中如何依靠第三個變數互換兩個變數
如果可以使用第三個變數來進行互換變數,可以進行如下操作:
int a= 5 , b = 6;
int temp ;
temp = a ;
a = b;
b = temp;
這樣就可以了。
也可以不使用第三變數:如下:
int a= 5 , b = 6;
a = a + b;
b = a - b;
a = a - b;
這樣也是可以的。
㈩ 如何用java實現兩個變數值的互換
可以利用以下方式:通過異或實現(異或符號為^)關於^:異或的運演算法則,相當於不帶進位的二進制加法。二進制下用1表示真,0表示假,則異或的運演算法則為:0異或0=0,1異或0=1,0異或1=1,1異或1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位。第一個數 符號 第二個數 結果0 ^ 0 00 ^ 1 11 ^ 0 11 ^ 1 0如:num1 = 5,對應的二進制為(101); num2 = 7,對應的二進制為(111);num1=num1^num2=2; 即二的平方位1^1=0,二的一次方位0^1=1,二的0次方位1^1=0;得到(010)即為2。num2 = num1 ^ num2=5 ;相當於num2=num1^num2^num2;二的平方位1^1^1=1(此處無論num2的二的平方位是0還是1,異或運算後都為0,故得到的肯定與原num1的二的平方位相同,同理其他位置全部也都是原num1的數);二的一次方位0^1^1=0;二的0次方位1^1^1=1.;得到(101)即為5.num1 = num1^num2=7; 相當於num1 = num1^num2^num1^num2^num2=num2=7.此方法同樣實現了兩個數互換。