import java.util.Arrays;
public class SwapDemo
{
public static void main(String[] args)
{
int [] a = new int[]{//定义一个数组,每个元素赋0~999直接的随机数
(int)(Math.random() * 1000),
(int)(Math.random() * 1000),
(int)(Math.random() * 1000),
(int)(Math.random() * 1000),
(int)(Math.random() * 1000)
};
System.out.println(a);//打印对象a
System.out.println(Arrays.toString(a));//打印原数组
//swap1(a);//调用方法1交换元素位置
swap2(a);//调用方法2交换元素位置
System.out.println(Arrays.toString(a));
}
public static void swap1(int a[])
{
int len = a.length;//定义len等于数组a的长度
for(int i=0;i<len/2;i++)//通过循环遍历元素,并通过第三方变量来交换元素
{
int tmp = a;
a = a[len-1-i];
a[len-1-i] = tmp;
}
}
public static void swap2(int a[])
{
int len = a.length;//定义len等于数组a的长度
for(int i=0, j=len-1;i<j;i++,j--)//通过循环遍历元素,并通过第三方变量来交换元素
{
int tmp = a;
a = a[len-1-i];
a[len-1-i] = tmp;
}
}
}
疑问:通过该例可以看出for(int i=0,int j=a.length-1;i<j;i++,j--) 等效于 for(int i=0;i<a.length/2;i++),但是我对for(int i=0;i<a.length/2;i++)怎样执行还不是很清楚,请说明!
|