描述说明
有三种情况:
1、交换数组内的元素;
2、交换两个等长数组的所有元素;
3、通过设置自定义对象的属性值达到交换一个自定义对象的目的。
Demo.java
package com.hitmt.work1;
import java.util.Arrays;
/**
* <p>Description: 交换引用类型的演示</p>
* @author HiTMT
* @date 2019-10-22 21:40:38
*/
public class Demo {
public static void swap(int[] arr, int i, int j) {
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
public static void swap(int[] a, int[] b) {
int minL=a.length<b.length?a.length:b.length;
for(int i=0;i<minL;i++) {
int temp=a[i];
a[i]=b[i];
b[i]=temp;
}
}
public static void swap(Swap a, Swap b) {
int temp=a.getNumber();
a.setNumber(b.getNumber());
b.setNumber(temp);
}
public static void main(String[] args) {
//交换数组内两个元素的位置
int[] a= {1,2};
System.out.println(Arrays.toString(a));
swap(a,0,1);
System.out.println(Arrays.toString(a));
//交换两个数组的内容
int[] ar= {1,2};
int[] br= {2,3};
System.out.println(Arrays.toString(ar)+", "+Arrays.toString(br));
swap(ar,br);
System.out.println(Arrays.toString(ar)+", "+Arrays.toString(br));
//交换自定义类对象的属性值
Swap na=new Swap(88);
Swap nb=new Swap(99);
System.out.println("na : "+na.toString());
System.out.println("nb : "+nb.toString());
swap(na,nb);
System.out.println("na : "+na.toString());
System.out.println("nb : "+nb.toString());
}
}
Swap.java
package com.hitmt.work1;
/**
*
* <p>Description: 用于交换引用类型的属性值</p>
* @author HiTMT
* @date 2019年9月25日上午8:48:17
*/
public class Swap {
private int number;
public Swap(int number) {
this.number=number;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
@Override
public String toString() {
return "Swap [number=" + number + "]";
}
}