gpt4 book ai didi

java - 如何在 java 中使用旧数组的一部分来创建新数组?

转载 作者:太空宇宙 更新时间:2023-11-04 13:15:58 25 4
gpt4 key购买 nike

所以我需要创建一个新数组来交换现有数组的第一个和最后一个值。这是我到目前为止所拥有的:

import java.util.Scanner;
import java.util.Arrays;
public class P9_ArrayManipulate
{ public static void main (String[] args)
{ Scanner in = new Scanner(System.in);
System.out.println("Please enter seven numbers for an Array.");
int []array = new int[7];
int total = 0;
for (int i = 0; i < 7;i++){
array[i] = in.nextInt();
}
System.out.println("Your reversed array is "+reverseArray(array));
System.out.println("Your swapped array is "+swapArray(array));
System.out.println("Your array without even numbers is "+evenArray(array));
System.out.println("The program has finished calling array methods.");
}
public static int []reverseArray(int []array)
{ int[] reversed = new int[array.length];
int i;
for(i=0; i < array.length; i++)
{
reversed[i] = array[(array.length - i -1)];
}
return reversed;
}
public static int []swapArray (int []array)
{
array[0] += array[array.length-1];
array[array.length-1] = array[0] - array[array.length-1];
array[0] -= array[array.length-1];
return array;
}
public static int []evenArray(int []array)
{ for (int i = 0; i < array.length;i++){
if (array[i]%2 !=0)
{array[i] = 0;}
i++;}
return array;
}

}

一切都正确编译(据我所知),但我遇到了一个奇怪的运行时错误。经过七个输入后,我得到以下输出:你的反转数组是[I@b4d079
您交换的数组是 [I@3644d1
你的没有偶数的数组是 [I@3644d1
程序已完成调用数组方法。

最佳答案

只需交换传递给 swapArray() 函数的数组的第一个和最后一个值并返回它,而不是创建一个新数组,会容易得多。

类似以下内容将起作用(并且它不会创建新变量来促进交换):

public static int[] swapArray(int[] array) {
array[0] += array[array.length-1];
array[array.length-1] = array[0] - array[array.length-1];
array[0] -= array[array.length-1];
return array;
}

关于java - 如何在 java 中使用旧数组的一部分来创建新数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33513610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com