java - 无法让数组更改为正确的大小
问题描述
所以我试图通过从主方法传入一个数组,在一个单独的方法中创建一个不同长度的新数组,但我遇到了麻烦。本质上,我要做的是使我的起始数组值为
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 循环,将元素添加到新创建的数组中。
推荐阅读
- python - Pandas 表数据 - 显示 LaTex 表示
- python - 设置作业队列,使工作人员能够被杀死并重新排队
- r - 当安装失败并出现未定义符号时如何安装 rjags:_ZN4jags7Console10setRNGnameERKNSt[...]
- maven - 使用来自 nexus 存储库的最新依赖项构建 maven 项目
- java - 使用构造函数的泛型和/或对象返回超类或子类
- xcode - 在 iPod Touch 上运行 react-native 应用程序时 Xcode 出错
- wordpress - 我的 wordpress 缩略图不显示/html 输出不是我需要的
- java - CSS,JavaScript,图像未加载到 JSP 文件中
- python - Django Rest API 仅显示一些 url
- bash - bash command clubbing:获取特定命令的退出状态