String[] a={1,2,3,4,5,6,7,8,9...}
String[] b={1,3,6}//可能会变化
怎么移除a[1和3和6]中的元素变为a={1,3,5,6,8,9...}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【tcx1986】截止到2008-07-08 16:54:42的历史汇总数据(不包括此帖):
    发帖的总数量:6                        发帖的总分数:120                      每贴平均分数:20                       
    回帖的总数量:7                        得分贴总数量:1                        回帖的得分率:14%                      
    结贴的总数量:5                        结贴的总分数:20                       
    无满意结贴数:4                        无满意结贴分:300                      
    未结的帖子数:1                        未结的总分数:100                      
    结贴的百分比:83.33 %               结分的百分比:16.67 %                  
    无满意结贴率:80.00 %               无满意结分率:1500.00%                  
    楼主加油
      

  2.   

    楼上的可能没明白我的意思
    String[] a={1,2,3,4,5,6,7,8,9};
    String[] b={1,3,6};
    for(int i;i<b.length;i++){
      a.remove(b[i]);//其实没有remove方法,我就不转型了
    }
    return a;
    这样返回的是
    a={1,3,4,6,7,8}
    我要的是a={1,3,5,6,8,9}
      

  3.   

    java里面数组的大小一旦创建好了就不能变动,所以,你需要重新new 一个新的数组,然后把删除之后的东西copy过去。
      

  4.   

    LZ复习数组概念先...
    数组不可被改变...
    你要的这个方法就是链表的概念
    也就是LinkedList非要用数组做的,只有新建一个数组,把原来数组的值一个一个复制过去
      

  5.   

    写个大概的程序吧
    List list=new ArrayList();//最后的结果
    for(int i=0;i<a.length;i++){
    if(b.contain(i)){//查看b数组中是否包括了i当前值 ,这个方法需要自己实现
    continue;//包括了 忽略该值
    }else{
    list.add(a[i]);//没有包括,将该值取出
    }
    }
      

  6.   

    你可以这样
     
    String[] filter(){ ArrayList a=new ArrayList();
     for(int i=0;i<a.length;i++){
        boolean find=false;
       for(int j=0;j<b.length;j++){
         if(a[i].equals(b[j])){
               find=true;
               break;
          }
       }
       if(false==find)
           a.add(a[i]);
     }
      
     return a.toArray(new String[]{})
    }
        
      

  7.   

    快下班了,随便写写,没考虑太多,这里假设b已经排序好public class Test {
    public static void main(String[] args) {
    String[] a = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
    int[] b = { 0, 3, 6 };// 可能会变化
    // 怎么移除a[1和3和6]中的元素变为a={1,3,5,6,8,9...}
    String[] a0 = new String[a.length - b.length]; int currentIndex = 0;
    for (int i = 0; i < b.length; i++) {
    for (int j = (i == 0 ? 0 : b[i - 1] + 1); j < b[i]; j++) {
    a0[currentIndex++] = a[j];
    }
    p(a0);
    } for (int i = b[b.length - 1] + 1; i < a.length; i++) {
    a0[currentIndex++] = a[i];
    }
    p(a0);
    } private static void p(String[] ss) {
    for (String s : ss) {
    System.out.print(s + "\t");
    }
    System.out.println();
    }
    }
      

  8.   

    快下班了,随便写写,没考虑太多,这里假设b已经排序好public class Test {
    public static void main(String[] args) {
    String[] a = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
    int[] b = { 0, 3, 6 };// 可能会变化
    // 怎么移除a[1和3和6]中的元素变为a={1,3,5,6,8,9...}
    String[] a0 = new String[a.length - b.length]; int currentIndex = 0;
    for (int i = 0; i < b.length; i++) {
    for (int j = (i == 0 ? 0 : b[i - 1] + 1); j < b[i]; j++) {
    a0[currentIndex++] = a[j];
    }
    p(a0);
    } for (int i = b[b.length - 1] + 1; i < a.length; i++) {
    a0[currentIndex++] = a[i];
    }
    p(a0);
    } private static void p(String[] ss) {
    for (String s : ss) {
    System.out.print(s + "\t");
    }
    System.out.println();
    }
    }
      

  9.   

    import java.util.ArrayList;
    import java.util.List;public class Test1 {
    public static void main(String[] args) {
    String[] a = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
    int[] b = { 1, 3, 6 }; List<String> lista=new ArrayList<String>();
    //List<String> lista = Arrays.asList(a);
    //List listb = Arrays.asList(b);
            for(int i=0;i<a.length;i++)
             lista.add(a[i]);  for(int j=0;j<b.length;j++)
     {
     lista.remove(b[j]-j);
     }
       final int size =  lista.size();
     a = (String[])lista.toArray(new String[size]);
     
     for(int i=0;i<a.length;i++)
     System.out.println(a[i]); }}输出:
    1
    3
    5
    6
    8
    9
      

  10.   

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collection;
    import java.util.Collections;
    import java.util.List;public class Test1 {
    public static void main(String[] args) {
    String[] a = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
    int[] b = { 1, 3, 6 }; List<String> lista=new ArrayList<String>();
            for(int i=0;i<a.length;i++)
             lista.add(a[i]);
    List<Integer> listb =new ArrayList<Integer>();
    for(int i=0;i<b.length;i++)
    listb.add(b[i]);
            Collections.sort(listb);//防止b变化
            
            
            //倒过来遍历list
     for(int j=listb.size()-1;j>=0;j--)
     {
     lista.remove((int)listb.get(j));
     }
       final int size =  lista.size();
     a = (String[])lista.toArray(new String[size]);
     
     for(int i=0;i<a.length;i++)
     System.out.println(a[i]); }}
      

  11.   

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collection;
    import java.util.Collections;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;public class Test1 {
    @SuppressWarnings({ "unchecked", "unchecked" })
    public static void main(String[] args) {
    String[] a = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
    int[] b = { 1,1,3,6 }; List<String> lista=new ArrayList<String>();
            for(int i=0;i<a.length;i++)
             lista.add(a[i]);
    List<Integer> listb =new ArrayList<Integer>();
    for(int i=0;i<b.length;i++)
    listb.add(b[i]);
    //防止重复
        Set set = new HashSet(listb);
        listb=new ArrayList(set);
        
            Collections.sort(listb);
             //倒过来遍历list
     for(int j=listb.size()-1;j>=0;j--)
     {
     lista.remove((int)listb.get(j));
     }
       final int size =  lista.size();
     a = (String[])lista.toArray(new String[size]);
     
     for(int i=0;i<a.length;i++)
     System.out.println(a[i]); }}输出:
    1
    3
    5
    6
    8
      

  12.   

     public static String[] deleteAt(String[] bs, int index)

        int length = bs.length - 1;
        String[] ret = new String[length];
        System.arraycopy(bs, 0, ret, 0, index); 
        System.arraycopy(bs, index + 1, ret, index, length - index);
         return ret;
     }//index填入你要删除的序号
      

  13.   

    public String[] delByte(int index, String[] b) 

        String[] b2 = new String[b.length];
        int j = 0; 
        for (int i = 0; i < b.length; i++)
      { 
       if (i == index) continue; 
       j++;
       b2[j] = b[i];
     
       }
        return b2; 
      }
    这个也可以