修改数组参数

时间:2016-09-17 18:37:27

标签: java arrays methods

import java.util.Scanner;

    public class ModifyArray {

    public static int [] swapArrayEnds(int [] sortArray, int numElem) {
       int temp = 0;
       int i = 0;

       for (i = 0; i < numElem - 1; ++i){
        temp = sortArray[0];
        sortArray[0] = sortArray[numElem - 1];
        sortArray[numElem - 1] = temp;
      }

    return sortArray;
   }

   public static void main (String [] args) {
     int numElem = 4;
     int[] sortArray = new int[numElem];
     int i = 0;

     sortArray[0] = 10;
     sortArray[1] = 20;
     sortArray[2] = 30;
     sortArray[3] = 40;

     swapArrayEnds(sortArray, numElem);

     for (i = 0; i < numElem; ++i) {
       System.out.print(sortArray[i]);
       System.out.print(" ");
    }
     System.out.println("");

  return;
 }
}

在方法 swapArrayEnds 中,我可以交换第一个用户输入的结尾,但如果主方法中的numElem发生更改, swapArrayEnds 将不会应用于更改参数

我需要帮助尝试获得第二个用户输入

1 个答案:

答案 0 :(得分:0)

如果你想要交换数组的最后一个元素和第一个元素,你不需要自己传递长度,你可以这样做:

&#13;
&#13;
public static int [] swapArrayEnds(int [] sortArray) {
  int temp = sortArray[0];
  sortArray[0] = sortArray[sortArray.length-1];
  sortArray[sortArray.length-1] = temp;
  return sortArray;
}
&#13;
&#13;
&#13;

这种方法将交换第一个和最后一个元素,如下所示:

你这样说:[3, 4, 6, 8] 你得到这个:[8, 4, 6, 3]

还要注意我从你的方法中删除了for循环,因为它只是一遍又一遍地交换相同的元素,这没有意义(因为如果你想交换2次,那么只会没有效果所以为什么要调用swap呢?)。