如何删除数组中的数据 1. 实施游戏:有一个整数数组(89,231,34,22,4562,231,334,21,109,237),对其进行排序,并要求输入一个数字,在数组中查找是否有这个数,如果有,将该数从数组中删除,要求删除后的数组仍然保持有序;如果没有找到,则显示“数组中没有这个数!”。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 数组存储数据,另外用一个链表记录数组中数据的顺序关系(链表的节点中记录数组索引和next),查找时在数组中查,查到了就去链表中找到相应节点,进行删除操作;没查到,就输出提示信息。 有一个比较笨的方法,就是把这个数组排序后存到List里,在List里循环查找输入的那个数,如果找到得话就remove掉,自后List就没有这个数了,还是有序的。 数组元素不能删除。用ArrayListArrayList<Integer> list = new ArrayList<Integer>(); 用集合都行。如果你一定只要用数组的话。如果找到了。可以把下面的元素的值赋个找到的这个元素如:item[i]=item[i+1];当循环到最后一个时。item[i]=null; 在java里太简单了,用Set就好了:int[] input={89,231,34,22,4562,231,334,21,109,237};Set datas=new TreeSet();int targetNum = ..... // 自己看吧,看你怎么控制输入和结束datas.remove(targetNum); // 移除了sysout(datas.toArray());// 获得结果数组反正java搞这种事情有很多现成的 re:楼上诸位用TreeSet控制不了顺序的,可以去看看jdk原代码 先 sort 一下排序 在 aslist 转换成 list然后再 indexof 。在 list 中 检索 然后再 remove 。 TreeSet是有序的。public static void main(String[] args) { int[] a = {89,231,34,22,4562,231,334,21,109,237}; Set<Integer> x = new TreeSet<Integer>(); for(int i=0; i<a.length;i++){ x.add(a[i]); } for(Integer b : x){ System.out.println(b); } }运行结果:212234891092312373344562所以可以放心使用 数组可以直接调用Arrays中的Arrays.sort(int[]),方法。删除的时候要遍历出所有的数字比较删除 java 处理 excel 相关问题 类继承出问题了!求解 JAVA 动态 调用C++ 100分 问题:graphic2D setclip 剪切图形不完整 java输出 怎么把Java 程序做成.exe文件? [GUI]JPanel与JPanel能不能不写在同一个.java文件中而相互传递参数 自己写了一个事件类,和事件监听器,为什么这个程序运行时说事件捕获不了? 【醒目】高分请教一计算坐标的算法.[不够加分] ^___^ 一个初浅而奇怪的问题,谁给我解释一下。 为什么byte数组转为String在转回byte数据,长度就变了呢 跪求关于int转换成byte的一个小小问题
remove掉,自后List就没有这个数了,还是有序的。
ArrayList<Integer> list = new ArrayList<Integer>();
如果你一定只要用数组的话。如果找到了。可以把下面的元素的值赋个找到的这个元素
如:item[i]=item[i+1];当循环到最后一个时。item[i]=null;
datas.remove(targetNum); // 移除了
sysout(datas.toArray());// 获得结果数组反正java搞这种事情有很多现成的
用TreeSet控制不了顺序的,可以去看看jdk原代码
int[] a = {89,231,34,22,4562,231,334,21,109,237};
Set<Integer> x = new TreeSet<Integer>();
for(int i=0; i<a.length;i++){
x.add(a[i]);
}
for(Integer b : x){
System.out.println(b);
}
}运行结果:
21
22
34
89
109
231
237
334
4562
所以可以放心使用