Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 交换数组后如何返回该数组?_Java_Arrays_Sorting_Return_Parameter Passing - Fatal编程技术网

Java 交换数组后如何返回该数组?

Java 交换数组后如何返回该数组?,java,arrays,sorting,return,parameter-passing,Java,Arrays,Sorting,Return,Parameter Passing,所以我有我的主要方法,应该有一个1-20个打印的数组,然后我应该在循环中传递这个数组,每次偶数出现。swap方法将用下一个数字切换数组中的偶数。。。所以在数组[1,2,3,4,5,…]中,2和3将切换,4和5将切换 以下是主要方法: public class Lab_01_Tester { public static void main (String[] args) throws FileNotFoundException { PrintWriter writer = new Pri

所以我有我的主要方法,应该有一个1-20个打印的数组,然后我应该在循环中传递这个数组,每次偶数出现。
swap
方法将用下一个数字切换数组中的偶数。。。所以在数组[1,2,3,4,5,…]中,2和3将切换,4和5将切换

以下是主要方法:

public class Lab_01_Tester {

public static void main (String[] args) throws FileNotFoundException
{
    PrintWriter writer = new PrintWriter("Lab_01_nums.txt");
    int[] randArray  = Lab_01_ArrayUtilities.buildIntArray(20, 10, 29);

    String randArrayString = Arrays.toString(randArray);

    writer.write(randArrayString);
    System.out.print(randArrayString);

    writer.close();

    for (int i = 0; i < randArray.length - 1; i++)
    {
        if (randArray[i] % 2 == 0)
        {
            Lab_01_ArrayUtilities.swap (randArray, i, i + 1);
            i = i +1;
        }

        else;

    }
    System.out.println();
    System.out.print(randArrayString);

}

}
我的问题是,当数组传回时,它是不变的

您不需要返回任何内容(假设您将方法签名更改为return
void
)-数组的元素已被替换到位

例如:

int[] array = { 3, 5, 4 };
swap(array, 0, 2);
System.out.println(array[0]); // 4
System.out.println(array[2]); // 3
这是您的实际问题:

System.out.print(randArrayString);
自从上次打印以来,您没有更改过
randArrayString
,所以难怪它打印的是相同的值。您只需在打印前再次添加此行:

randArrayString = Arrays.toString(randArray);
您不需要返回任何内容(假设您将方法签名更改为return
void
)-数组的元素已交换到位

例如:

int[] array = { 3, 5, 4 };
swap(array, 0, 2);
System.out.println(array[0]); // 4
System.out.println(array[2]); // 3
这是您的实际问题:

System.out.print(randArrayString);
自从上次打印以来,您没有更改过
randArrayString
,所以难怪它打印的是相同的值。您只需在打印前再次添加此行:

randArrayString = Arrays.toString(randArray);
您不需要返回任何内容(假设您将方法签名更改为return
void
)-数组的元素已交换到位

例如:

int[] array = { 3, 5, 4 };
swap(array, 0, 2);
System.out.println(array[0]); // 4
System.out.println(array[2]); // 3
这是您的实际问题:

System.out.print(randArrayString);
自从上次打印以来,您没有更改过
randArrayString
,所以难怪它打印的是相同的值。您只需在打印前再次添加此行:

randArrayString = Arrays.toString(randArray);
您不需要返回任何内容(假设您将方法签名更改为return
void
)-数组的元素已交换到位

例如:

int[] array = { 3, 5, 4 };
swap(array, 0, 2);
System.out.println(array[0]); // 4
System.out.println(array[2]); // 3
这是您的实际问题:

System.out.print(randArrayString);
自从上次打印以来,您没有更改过
randArrayString
,所以难怪它打印的是相同的值。您只需在打印前再次添加此行:

randArrayString = Arrays.toString(randArray);


也许是这样,
randArray=Lab\u 01\u arrayuutilities.swap(randArray,i,i+1)?您仔细测试过这个吗?只是快速通读一下,但swap()看起来应该可以工作。是的,不必返回数组。不管怎样,这种方法都会起作用。可能是其他代码有问题,比如
else
。可能是这样,
randArray=Lab\u 01\u arrayuutilities.swap(randArray,i,i+1)?您仔细测试过这个吗?只是快速通读一下,但swap()看起来应该可以工作。是的,不必返回数组。不管怎样,这种方法都会起作用。可能是其他代码有问题,比如
else
。可能是这样,
randArray=Lab\u 01\u arrayuutilities.swap(randArray,i,i+1)?您仔细测试过这个吗?只是快速通读一下,但swap()看起来应该可以工作。是的,不必返回数组。不管怎样,这种方法都会起作用。可能是其他代码有问题,比如
else
。可能是这样,
randArray=Lab\u 01\u arrayuutilities.swap(randArray,i,i+1)?您仔细测试过这个吗?只是快速通读一下,但swap()看起来应该可以工作。是的,不必返回数组。不管怎样,这种方法都会起作用。可能是其他代码有问题,比如
else。当我打印完整数组时,虽然没有任何更改。@NikDesai:请参阅我的编辑-您没有打印数组的当前内容。。。你正在打印与你之前打印的相同的字符串。噢,哇。。非常感谢您,刚刚为我节省了几个小时的咒骂:)当我打印完整的数组时,虽然没有任何更改。@NikDesai:查看我的编辑-您没有打印数组的当前内容。。。你正在打印与你之前打印的相同的字符串。噢,哇。。非常感谢您,刚刚为我节省了几个小时的咒骂:)当我打印完整的数组时,虽然没有任何更改。@NikDesai:查看我的编辑-您没有打印数组的当前内容。。。你正在打印与你之前打印的相同的字符串。噢,哇。。非常感谢您,刚刚为我节省了几个小时的咒骂:)当我打印完整的数组时,虽然没有任何更改。@NikDesai:查看我的编辑-您没有打印数组的当前内容。。。你正在打印与你之前打印的相同的字符串。噢,哇。。非常感谢你,刚刚帮我省了几个小时的咒骂:)