gpt4 book ai didi

java - 代码输出数组的位置而不是数组本身

转载 作者:行者123 更新时间:2023-12-01 18:56:09 25 4
gpt4 key购买 nike

代码如下:

import java.lang.System;
import java.lang.Math;

public class ArrayFunHouseTwo
{
public static int[] getCountValuesBiggerThanX(int[] numArray, int count, int x)
{
int[] newNumArray = new int[0];
//int num = 0;
int cnt = 0;
int z = 0;
for(int y = 0; y < numArray.length; y++){
if(numArray[y] > x && z < count){
newNumArray = new int[count];
newNumArray[z] = numArray[y];
z++;
}


}

//}
return newNumArray;
}
}

及其关联的运行者类:

import java.util.Arrays;

public class Lab14b
{
public static void main( String args[] )
{
int[] one = {1,2,3,4,5,6,7,8,9,10};
int[] two = {1,2,3,9,11,20,30};
//add more test cases
int[] three = {9,8,7,6,5,4,3,2,0,-2};
int[] four = {3,6,9,12,15,18,21,23,19,17,15,13,11,10,9,6,3,2,1,0};
System.out.println(Arrays.toString(four));
System.out.println("first 7 values greater than 9 " + ArrayFunHouseTwo.getCountValuesBiggerThanX(four, 7, 9));
System.out.println("first 5 values greater than 15 " + ArrayFunHouseTwo.getCountValuesBiggerThanX(four, 5, 15));
}
}

正如我上面所说,它输出的是位置,我认为这就是它的本质,而不是数组本身。

即我得到:前 7 个值大于 9 [I@38f0b51d

前 5 个值大于 15 [I@4302a01f

而不是前 7 个大于 9 的值 [12, 15, 18, 21, 23, 19, 17]

前 5 个值大于 15 [18, 21, 23, 19, 17]

更新

好的,现在我得到:

first 7 values greater than 9 [0, 0, 0, 0, 0, 0, 17]

first 5 values greater than 15 [0, 0, 0, 0, 17]

最佳答案

使用Arrays.toString将函数的返回值转换为字符串

 System.out.println("first 7 values greater than 9  " +    Arrays.toString(ArrayFunHouseTwo.getCountValuesBiggerThanX(four, 7, 9)));
System.out.println("first 5 values greater than 15 " + Arrays.toString(ArrayFunHouseTwo.getCountValuesBiggerThanX(four, 5, 15)));

对于你的新问题,你不想在循环中如此深入地执行 newNumArray = new int[count]; ,它每次都会被覆盖。

我的java很生锈,但也许你可以在第一行将newNumArray设置为null,并且只有在它是时才在循环内重新创建它空。或者直接将其更新为最终尺寸..取决于您想要输出的内容。

关于java - 代码输出数组的位置而不是数组本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13872153/

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