交换数组中的相应元素

时间:2011-03-03 02:56:32

标签: java arrays

如何使用循环切换数组中的相应元素(例如:First with last,Second with one before last)。我已经使用循环编写了代码,但它没有在Eclipse中提供所需的结果。

int[] a = {1, 2, 3, 4, 5};
int k = 0;
int temp = 0;
while(k < a.length)
{
  temp = a[k];
  a[k] = a[a.length - 1 - k];
  a[a.length - 1 - k] = temp;
  k++;
}

假设您不知道数组中的值或它的长度。

3 个答案:

答案 0 :(得分:6)

你应该只在数组的中途循环,即while (k < a.length / 2) - 如果你继续超越,你将最终将交换的元素交换回原来的位置。

答案 1 :(得分:1)

easier way 
for(int i=0,j=a.length-1;i<j;i++,j--)
{
  int temp=a[i];
  a[i]=a[j];
  a[j]=temp;
}

答案 2 :(得分:0)

您正在遍历整个数组,这意味着您最终会撤消在迭代的前半部分所执行的操作。只需迭代一半长度的数组(向下舍入)。这应该有效:

int[] a = {1, 2, 3, 4, 5};
int k = 0;
int temp = 0;
while(k < (a.length / 2)) {
temp = a[k];
a[k] = a[a.length - 1 - k];
a[a.length - 1 - k] = temp;
k++;
}