读书人

数组中的反转小疑点

发布时间: 2012-05-16 11:12:12 作者: rapoo

数组中的反转小问题
[code=Java][/codeclass Array
{
public static void main(String []args)
{
int arr[]={1,2,3,4,5,6,7,8,9};
for (int x=0,y=arr.length-1;x<y ; x++,y--)
{
x=x^y;
y=x^y;
x=x^y;
}
for (int x=0;x<arr.length ;x++ )
{
System.out.print(arr[x]+",");
}
}
}
=============================================================
class Array
{
public static void main(String []args)
{
int arr[]={1,2,3,4,5,6,7,8,9};
for (int x=0,y=arr.length-1;x<y ; x++,y--)
{
arr[x]=arr[x]^arr[y];
arr[y]=arr[x]^arr[y];
arr[x]=arr[x]^arr[y];
}
for (int x=0;x<arr.length ;x++ )
{
System.out.print(arr[x]+",");
}
}
}
小弟的问题是为什么第一种方法不行呢?把角标位互换再打印为嘛不行,是不是可以这么理解,我换不换,角标从左往右都是0开始的。 ]

[解决办法]
起一个数组,存下标
int index[]=new int[arr.length];
for(int i= 0;i<arr.length;i++){
index[i] = arr.length - i-1;
}
for (int i=0;i<index.length ;i++ ){
System.out.print(arr[index[i]]+",");
}

读书人网 >J2SE开发

热点推荐