❶ java中實現類交換的方法
1.藉助中間量交換
int x = 10;
int y = 20;
int temp = x;
x = y;
y = temp;
此種方法可以將中間量看成空杯,即把temp看成是空杯,
把x看成是裝有白酒的杯子,把y看成是裝有紅酒的杯子
int temp = x; 把白酒倒到空杯中,此時temp裝有白酒,x變成空杯
x = y; 把y中的紅酒倒到x空杯中,此時x裝有紅酒,y變成空杯
y = temp;
把白酒倒到y空杯中,此時x裝有紅酒,y裝有白酒,實現x和y的互換
2.數值相加減交換
int x =
10;
int y = 20;
x = x + y;
y = x - y;
x = x - y;
此種方法通過先求得兩數的和再進行減運算
x = x + y; 此時x的值為10+20=30;
y = x - y;
此時的x經上面的運算變成30,所以y = 30 - 20 = 10;
x = x - y; 此時的y經上面的運算變成10,所以x = 30 - 10 =
20;實現兩個數的互換
3.位移運算交換
int x = 10;
int y =
20;
x = x ^ y;
y = x ^ y;
❷ java交換位置的方法
int aa[] = {1,2,3,4,5};
int t=a[1];
a[1]=a[4];
a[4]=t;
❸ java 交換數
int[]arr={1,2,3,4};
if(arr.length%2==0){
for(inti=0;i<arr.length/2;i++){
intx=arr[i*2];
arr[i*2]=arr[(i*2)+1];
arr[(i*2)+1]=x;
}
}else{
for(inti=0;i<(arr.length-1)/2;i++){
intx=arr[i*2];
arr[i*2]=arr[(i*2)+1];
arr[(i*2)+1]=x;
}
}
for(inti=0;i<arr.length;i++){
System.out.print(arr[i]);
}
是這個意思?
❹ java的數據交換
public class Main {
public static void main(String[]args){
String a="我好";
String b="你也好";
String c;
c=a;
a=b;
b=c;
System.out.println(a);
System.out.println(b);
}
}
上述代碼為正解!! 滿意請採納!!!!!!!!!!!!!!!
定義一個中間變數 用來傳值!!
賦值的時候不能加類型 加類型的話表示一個變數重復定義!!
String a="我好";
String b="你也好";
String c=a;
String a=b;
String b=c;
你這里a,b都被定義了兩次 一個變數只能定義一次!!
❺ java如何來交換兩個數組元素的值
首先兩個數組的長度要一樣交換才有意義,循環遍歷數組
int temp; //數組是什麼類型temp就定義什麼類型
for(int i=0; i<ary1.length; i++){
temp = ary1[i];
ary1[i] = ary2[i];
ary2[i] = temp;
}
❻ java怎麼實現兩個對象內容的交換
public class Demo { public static void main(String[] args) { //調用這個靜態方法傳遞兩個int 型的值就是了。 exchange(2, 6); } public static void exchange(int a, int b) { int temp = 0; temp = a; a = b; b = temp; System.out.println
❼ 如何用Java寫一個交換函數
//交換A和B
publicvoidexchange(Objecta,Objectb){
Objectt=a;
a=b;
b=t;
}
❽ Java 兩個按鈕的交換
/**寫了個按鈕1往按鈕2拖的,玩一下*/
import java.awt.Cursor;
import java.awt.Rectangle;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
public class TestFrame extends javax.swing.JFrame {
private static final long serialVersionUID = 1L;
private JButton jButton1;
private JButton jButton2;
private boolean inBtn2=false;
private JPanel p;
{
//Set Look & Feel
try {
javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch(Exception e) {
e.printStackTrace();
}
}
/**
* Auto-generated main method to display this JFrame
*/
public static void main(String[] args) {
TestFrame inst = new TestFrame();
inst.setVisible(true);
}
public TestFrame() {
super();
initGUI();
}
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().setLayout(null);
p=(JPanel) getContentPane();
{
jButton1 = new JButton();
getContentPane().add(jButton1);
jButton1.setText("jButton1");
jButton1.setBounds(42, 49, 84, 28);
jButton1.addMouseListener(new MouseListener() {
public void mouseEntered(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
}
public void mouseReleased(MouseEvent e) {
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
if (inBtn2==true) {
Rectangle r=jButton1.getBounds();
jButton1.setBounds(jButton2.getBounds());//交換位置
jButton2.setBounds(r);
p.revalidate();//刷新界面
}
}
public void mouseExited(MouseEvent e) {
}
public void mouseClicked(MouseEvent e) {
}
});
}
{
jButton2 = new JButton();
getContentPane().add(jButton2);
jButton2.setText("jButton2");
jButton2.setBounds(210, 91, 84, 28);
jButton2.addMouseListener(new MouseListener() {
public void mouseEntered(MouseEvent e) {
inBtn2=true;//進入Button2
}
public void mousePressed(MouseEvent e) {
setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
}
public void mouseReleased(MouseEvent e) {
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
public void mouseExited(MouseEvent e) {
inBtn2=false;
}
public void mouseClicked(MouseEvent e) {
}
});
}
pack();
this.setSize(337, 218);
setLocationRelativeTo(null);//居中
} catch (Exception e) {
e.printStackTrace();
}
}
}
❾ java 兩個數交換
這樣做是肯定沒有換的。在JAVA裡面沒有指針的概念,你傳過去的只不過一個引用而已,他不會改變原有的值。你把a,b定義成全局變數是能夠改變的。先弄清在JAVA中參數的傳遞到底傳的是什麼,這樣你會比較容易理解
❿ java 交換值
1、對於原始數據類型,也就是int、 long、char之類的類型,是傳值的,如果你在方法中修改了值,方法調用結束後,那個變數的值沒用改變。
2、對於對象類型,也就是Object的子類,如果你在方法中修改了它的成員的值,那個修改是生效的,方法調用結束後,它的成員是新的值,但是如果你把它指向一個其它的對象,方法調用結束後,原來對它的引用並沒用指向新的對象。
因此在change方法中交換x,y是成功的,但是不會影響到static x ,y的值,在change方法中輸出是可以得到交換成功的x,y,因為它們都是基本類型。可以通過一個int[]的返回值來得到交換後的數值。
簡單點說
1、基本類型作為參數傳遞時,是傳遞值的拷貝,無論你怎麼改變這個拷貝,原值是不會改變的
2、在Java中對象作為參數傳遞時,是把對象在內存中的地址拷貝了一份傳給了參數。