java删除数组中元素 举个例子: int a[]={1,2,3,4,5} 我能得到下标 删除 a[3]也就是4如何实现。求赐教

如题所述

如果非要使用数组,只能这样:首先确定你的数组中的元素的最大值和最小值(就是数组的范围,如:只能是大于等于0的),然后将目标元素a[3]的值改为比0小的(就是在这个数组范围以外的数字),然后排序 sort(),这样数组中的那个范围以外的元素就跑到最后的位置,然后再新建一个比原来数组小1位的数组,然后赋值,这样,当新数组赋值完毕时,老数组的最后一位就被剩下了,这样新数组就相当于那个删了元素的老数组
强烈建议使用 集合或泛型,因为里面有删除方法,而且不用定义长度,相当好使!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-30
import java.util.ArrayList;
import java.util.List;

public class Test {
public static void main(String args[]) {
int[] oldArr = { 1, 2, 3, 4, 5, 6 };
int[] newArr = removeByIndex(oldArr, 3);
for (int i : newArr) {
System.out.print(i);
}
}

public static int[] removeByIndex(int[] oldArr, int index) {
// new 一个 List
List<Object> list = new ArrayList<Object>();
// 循环迭代,把数组放进List里面
for (int i : oldArr) {
list.add(i);
}
// 根据索引删除
list.remove(index);
// 重新new 一个数组
int[] newArr = new int[list.size()];
// 把List里面的集合全部添加到数组里面
for (int i = 0; i < list.size(); i++) {
newArr[i] = ((Integer) list.get(i)).intValue();
}
return newArr;
}
}
第2个回答  2011-05-30
楼上砍甘蔗有道理,只要把第一节和第二节连接起来既可
public class Du {

public static void main(String[] args) {

int a[]={1,2,3,4,5,6};

int index = 2;//要删除的index

int[] ary = new int[a.length-1];

System.arraycopy(a, 0, ary, 0, index);
System.arraycopy(a, index+1, ary, index, ary.length-index);

for(int i = 0;i < ary.length; i++){
System.out.println(ary[i]);
}

}

}
-----------------
1
2
4
5
6本回答被网友采纳
第3个回答  2011-05-30
数组不可以俄
他就像一根甘蔗,有10节,你要是砍掉一节他就成了2跟甘蔗了

用arrayList存放你的数据吧,它可以实现你的功能
他们就像容器,你可以仍很多的石头进去,也可以拿出来
数组出生到死就固定长度的
第4个回答  2011-05-30
java.util.ArrayList.* 中有一个remove方法,可以采取这种动态数组的方法。
相似回答