java数组的元素删除问题
//如何实现删除数组publicclassarraydelete{/***@paramargs*/publicstaticvoidmain(String[]args){S...
//如何实现删除数组
public class arraydelete {
/**
* @param args
*/
public static void main(String[] args) {
String[] array={"iPhone3GS","iPhone4","iPhone4S","iPhone5"};
int index=-1;
for(int i=0;i<array.length;i++){
//查找插入位置
if(array[i].equals("iPhone3GS")){
index=i;
break;
}
if(index!=-1){
//array[index]="iPhone4天下无敌";
for(int j=index;j<array.length-1;j++){
array[j]=array[j+1];
}
array[array.length-1]=null;
}else{
System.out.println("数组已满");
}
for(int k=0;k<array.length;k++){
System.out.println(array[k]);
}
}
}
}
不能实现是什么原因,请详解 展开
public class arraydelete {
/**
* @param args
*/
public static void main(String[] args) {
String[] array={"iPhone3GS","iPhone4","iPhone4S","iPhone5"};
int index=-1;
for(int i=0;i<array.length;i++){
//查找插入位置
if(array[i].equals("iPhone3GS")){
index=i;
break;
}
if(index!=-1){
//array[index]="iPhone4天下无敌";
for(int j=index;j<array.length-1;j++){
array[j]=array[j+1];
}
array[array.length-1]=null;
}else{
System.out.println("数组已满");
}
for(int k=0;k<array.length;k++){
System.out.println(array[k]);
}
}
}
}
不能实现是什么原因,请详解 展开
展开全部
1.java中数组不太好用,尽量用List。
2.array[array.length-1]=null,你这个语句只是将数组位置值置为null,不是删除数组元素,还是会输出。
3.你第一个循环要用continue,不能用break,这是无法运行的最主要问题。
2.array[array.length-1]=null,你这个语句只是将数组位置值置为null,不是删除数组元素,还是会输出。
3.你第一个循环要用continue,不能用break,这是无法运行的最主要问题。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最好是使用List
public static void main(String[] args) {
String[] arr = { "IPhone3GS", "IPhone4", "IPhone4S", "IPhone5" };
String remove = "IPhone3GS";
ArrayList<String> temp = new ArrayList<String>(Arrays.asList(arr));
boolean flag = false;
for (String str : temp) {
if (str.equals(remove)) {
temp.remove(str);
flag = true;
break;
}
}
if (flag) {
arr = temp.toArray(new String[arr.length - 1]);
} else {
System.out.println("未找到 '" + remove + "'");
}
System.out.println(Arrays.toString(arr));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//查找插入位置
if(array[i].equals("iPhone3GS")){
index=i;//i=0
break;
}
当你执行到此处 第一次循环就会进入到此if判断 然后break 跳出循环了。跳出循环所以循环里的其他代码就不会被执行了
if(array[i].equals("iPhone3GS")){
index=i;//i=0
break;
}
当你执行到此处 第一次循环就会进入到此if判断 然后break 跳出循环了。跳出循环所以循环里的其他代码就不会被执行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(array[i].equals("iPhone3GS")){
index=i;
break;
}
这个break跳出循环了
index=i;
break;
}
这个break跳出循环了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看了一下你的代码,按照你代码中想表达的逻辑,你第一个for循环结束的位置,应该是在第一个if结束之后。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |