gpt4 book ai didi

java - 无法让数组更改为正确的大小

转载 作者:行者123 更新时间:2023-11-29 04:09:59 24 4
gpt4 key购买 nike

所以我试图通过从 main 方法传入一个数组来在一个单独的方法中创建一个不同长度的新数组,但我遇到了麻烦。本质上我要做的是使它成为我的起始数组值

 int [] myInches = {89,12,33,7,72,42,76,49,69,85,61,23};

转移到我的 createLowerArray 方法,并通过将其与用户输入的 maxParam 进行比较,创建一个新数组并将其返回。

   public static int [] createLowerArray(int maxParam, int [] myInchesParam) {
int [] betterInches = {0,0,0,0,0,0,0,0,0,0};
for (int i = 0; i < myInchesParam.length; i++) {
if (myInchesParam[i] < maxParam)
betterInches[i] = myInchesParam[i];
}
return betterInches;
}

假设用户输入“40”,它会查看 myInches/myInchesParam 中的相应元素是否更小,如果是,则会用它的相应值替换我在该方法中创建的数组。因此,由于 12、33、7 和 23 是仅有的小于 40 的元素,因此它应该构成一个长度为 3、位置 0 为 12、[1] = 12、[2] = 7 和 [3] = 23 . 我知道由于内存问题,你不能使一个数组比它已经存在的更大,但是有可能使一个数组比它已经存在的更小,对吗?如果那也不可能,那么我想知道如何获得此结果,因为此时它返回的数组与原始数组的长度相同,但元素位置不正确这不是我想做的。提前感谢您的帮助。

最佳答案

您不能更改已创建数组的长度。这意味着您不能增加减小大小。您在这里有几个选择。首先,您可以使用 ArrayList .使用列表的好处是它们具有内置函数,可让您增加和减少数据的长度。

另一个选项(不需要ArrayLists)是不创建数组,直到您知道它需要多长(或多短)。为此,您可以编写一个 for 循环来计算要添加到新数组的项目数。然后,在该循环之后,您创建一个该长度的数组。最后,您编写了第二个 for 循环,将元素添加到新创建的数组中。

关于java - 无法让数组更改为正确的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55644931/

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