有两个字符串数组 
A[]={"1","2","3"}
B[]={"1","2","3","4"}如何B-A得到一个新的数组C=["4"]??

解决方案 »

  1.   

    4楼想的不错,用链表应该更简单吧,直接remove
      

  2.   

    int a[]={1,2,3};
    int b[]={1,2,3,4,5,6};
    int size = b.length-a.length;
    int c[] = new int[size];
    for(int i =0;i<c.length;i++){
        c[i]=b[i+a.length];

    }
      

  3.   


    链表的话效率是问题
    那如果
    A[]={"1","2","3"}
    B[]={"4"}
    B-A结果是啥?是按集合差运算的结果还是啥?
      

  4.   

    c语言吗?可以通过ASCII码进行处理的,转化成数字,再转化成字符
      

  5.   


    public static String[] subtract(String [] a, String [] b){
    ArrayList<String> rsList = new ArrayList<String>();
    boolean flag = true;
    for(int i= 0;i<a.length;i++) {
    for (int j=0; j<b.length;j++) {
    if(a[i].equals(b[j])) {
    flag = false;
    break;
    }
    }
    if(flag){
    rsList.add(a[i]);
    }
    flag = true;
    }
    String[] rsArr = new String[rsList.size()];
    for(int k=0;k<rsList.size();k++){
    rsArr[k]=rsList.get(k);
    }
    return rsArr;
    }
      

  6.   


    String A[]={"1","2","3","3","3","5"};
    String B[]={"1","2","3","4"};
    List<String> listA= java.util.Arrays.asList(A); 
    List<String> listB= java.util.Arrays.asList(B);  Set setA = new HashSet(listA);
    setA.removeAll(listB);
    System.out.println(setA);

    Set setB = new HashSet(listB);
    setB.removeAll(listA);
    System.out.println(setB);

    setA.addAll(setB);
    System.out.println(setA);