1. 实施游戏:有一个整数数组(89,231,34,22,4562,231,334,21,109,237),对其进行排序,并要求输入一个数字,在数组中查找是否有这个数,如果有,将该数从数组中删除,要求删除后的数组仍然保持有序;如果没有找到,则显示“数组中没有这个数!”。

解决方案 »

  1.   

    数组存储数据,另外用一个链表记录数组中数据的顺序关系(链表的节点中记录数组索引和next),查找时在数组中查,查到了就去链表中找到相应节点,进行删除操作;没查到,就输出提示信息。
      

  2.   

    有一个比较笨的方法,就是把这个数组排序后存到List里,在List里循环查找输入的那个数,如果找到得话就
    remove掉,自后List就没有这个数了,还是有序的。
      

  3.   

    数组元素不能删除。用ArrayList
    ArrayList<Integer> list = new ArrayList<Integer>();
      

  4.   

    用集合都行。
    如果你一定只要用数组的话。如果找到了。可以把下面的元素的值赋个找到的这个元素
    如:item[i]=item[i+1];当循环到最后一个时。item[i]=null;
      

  5.   

    在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搞这种事情有很多现成的
      

  6.   

    re:楼上诸位
    用TreeSet控制不了顺序的,可以去看看jdk原代码
      

  7.   

    先 sort 一下排序 在 aslist   转换成 list然后再 indexof 。在 list 中 检索 然后再 remove 。
      

  8.   

    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);
            }
            
        }运行结果:
    21
    22
    34
    89
    109
    231
    237
    334
    4562
    所以可以放心使用
      

  9.   

    数组可以直接调用Arrays中的Arrays.sort(int[]),方法。删除的时候要遍历出所有的数字比较删除