如何将一个数字删除到一个java数组中?
问题描述:
这是一个java中数组的简单程序。 我想删除用户想要的号码,但它不是在我的代码工作,最后两个元素是正常工作,但在元素删除开始不工作,我不想在我的代码中使用ArrayList。 删除数组中存在的用户需要的一个元素。如何将一个数字删除到一个java数组中?
import java.util.Scanner;
public class delete {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("pls enter the size of an array:-->");
int n=in.nextInt();
int num[]=new int[n];
for(int k=0;k<num.length;k++)
{
System.out.println("enter the value:--> "+(k+1));
num[k]=in.nextInt();
}
System.out.println("Enter the number to be delete:-->");
int m=in.nextInt();
for(int p=0;p<num.length-1;p++)
{
if(m==num[p])
{
num[p]=num[p+1];
}
}
for(int k=0;k<num.length-1;k++)
System.out.println(num[k]);
}
}
答
我会建议你使用ArrayList,而不是只是一个阵列(检查更多信息Java文档),但是如果你想要做这种事情应该是这样的:
只需添加这条线
for(int p=0;p<num.length-1;p++)
{
if(m==num[p])
{
num[p]=num[p+1];
// Add this line
m = num[p];
}
}
这是因为,当你发现的数量,你只是被改变的下一个元素的值,而不是所有的剩余元素
你应该注意的一件事是你不删除元素,只是覆盖值。
为什么downvotes?完美的代码,一个非常具体的问题/问题。很少看到java标签中的正面投票.. – arynaq 2014-10-19 19:30:19
每个人都认为它不会删除,只包括数组中的下一个数字,并且肯定不会为最后一个元素工作@arynaq – maskacovnik 2014-10-19 19:31:28
对于新手程序员来说,它并不清楚它不会删除。我认为他想要做的是去除第n个元素,用第n + 1个元素覆盖它,然后用第n + 2个元素覆盖第n + 1个元素,等等,直到循环终止于倒数第二个元素。 – Andersnk 2014-10-19 19:34:59