从数组中删除元素-java
我尝试从java数组中删除一个元素并移动数组,更新总值和计数。 这是我写的代码段,它给了我错误的结果,我如何修复它从数组中删除元素-java,java,arrays,Java,Arrays,我尝试从java数组中删除一个元素并移动数组,更新总值和计数。 这是我写的代码段,它给了我错误的结果,我如何修复它 public void remove(int index) { if(index > count-1 || index <0) System.out.println("Incorrect index."); else{ if(index ==1){ total -= numbers[index];
public void remove(int index)
{
if(index > count-1 || index <0)
System.out.println("Incorrect index.");
else{
if(index ==1){
total -= numbers[index];
numbers = new int [0];
count--;
}else{
total -= numbers[index];
for(int i=index; i < count; i++)
numbers[i] = numbers[i+1];
count--;
}
}
}
我明白了
数组的大小必须大于0。[空名单][12,25,20]
线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常异常:3
在NumberList.remove(NumberList.java:113)
位于Prelab8.main(Prelab8.java:102)
您将在for循环中获得arrayindexoutofbound。 应该是
for(int i=index; i < count-1; i++)
for(int i=index;i
最终代码示例:
public class Test {
static int count;
static int total;
static int [] numbers = {1,2,3,4};
public static void main(String[] args) throws IOException {
count = numbers.length;
for (int i : numbers) {
total = total+i;
}
remove(3);
System.out.println(total);
System.out.println(count);
}
public static void remove(int index)
{
if(index > count-1 || index <0)
System.out.println("Incorrect index.");
else{
if(index ==1){
total -= numbers[index];
numbers = new int [0];
count--;
}else{
total -= numbers[index];
for(int i=index; i < count-1; i++)
numbers[i] = numbers[i+1];
count--;
}
}
}
}
公共类测试{
静态整数计数;
静态整数合计;
静态int[]数={1,2,3,4};
公共静态void main(字符串[]args)引发IOException{
计数=数字。长度;
用于(int i:数字){
总计=总计+i;
}
移除(3);
系统输出打印项次(总计);
系统输出打印项次(计数);
}
公共静态无效删除(int索引)
{
如果(index>count-1 | | index可能与if
中的count==1
重复吗?请解释您预期会发生什么以及实际发生了什么。包括堆栈跟踪中的任何错误。理想情况下,扩展您的代码示例,使其成为演示您的问题的完整工作示例。是的,我将其更新为count,但我仍然我检查了你的代码,但它仍然给出了java.lang.ArrayIndexOutOfBoundsException:1在NumberList.remove(NumberList.java:104)在Prelab8.main(Prelab8.java:102)我没有你的NumberList.java或Prelab8.main类,因此无法对错误进行评论
public class Test {
static int count;
static int total;
static int [] numbers = {1,2,3,4};
public static void main(String[] args) throws IOException {
count = numbers.length;
for (int i : numbers) {
total = total+i;
}
remove(3);
System.out.println(total);
System.out.println(count);
}
public static void remove(int index)
{
if(index > count-1 || index <0)
System.out.println("Incorrect index.");
else{
if(index ==1){
total -= numbers[index];
numbers = new int [0];
count--;
}else{
total -= numbers[index];
for(int i=index; i < count-1; i++)
numbers[i] = numbers[i+1];
count--;
}
}
}
}