gpt4 book ai didi

java - java从数组中删除一个元素

转载 作者:行者123 更新时间:2023-11-30 06:20:43 24 4
gpt4 key购买 nike

所以我在高中学习 AP 计算机科学课,所以我不是很有经验。我有一个程序需要我从文件中读取数字,将这些数字放入数组中,然后从数组中删除所有 0。

所以如果数字是:0,2,4,6,0,5,3,5...我需要创建一个数组:[0,2,4,6,0,5,3,5]然后删除 0:[2,4,6,5,3,5]

我必须使用数组来执行此操作,并且不允许我创建第二个数组来执行此操作。我在网上和 Java API 上到处查看,想找到一种可以从数组中删除元素的方法,但我就是找不到。如果有人对我可以使用的方法有任何想法或指导我的方向,我们将不胜感激。

这是单词的疑问词:1. 编写一个读取文本文件 (compact.txt) 并将整数存储在数组中的程序。您的讲师将提供此文本文件。2. 编写一个compact 方法,从数组中删除所有零,保持元素的顺序不变。此函数内的所有局部变量都必须是标量。换句话说,您可能不会使用第二个数组来解决问题。3. 不要简单地只打印出数组中的非零值来解决问题。 compact 方法必须从数组中删除所有零。

最佳答案

您可以尝试以下操作:由于您无法修改数组的长度,您可以对其进行排列,以便将所有零放在数组的末尾并且值为 -1(这是可选的,只是为了表明它们是零)。

public static void main(String[] args)
{
int[] arr = { 0, 1, 2, 0, 3, 0, 4, 0, 5, 6, 7 };
int[] arrWithoutZeros = compact(arr);
for (int i : arrWithoutZeros) {
System.out.println(i);
}
}

private static int[] compact(int[] arr)
{
for (int i = 0; i < arr.length; i++) {
if (arr[i] == 0) {
int j = 0;
for (j = i; j < arr.length - 1; j++) {
arr[j] = arr[j + 1];
}
arr[j] = -1;
i--;
}

}
return arr;
}

输出:

1
2
3
4
5
6
7
-1
-1
-1
-1

注:这符合题目要求:

  • 保持元素的顺序不变(改变它的位置,但不改变顺序)
  • 不要使用第二个数组
  • 仅打印非零元素无法解决
  • 从数组中删除零(它们现在是 -1)

关于java - java从数组中删除一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21421253/

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