两个数组都List化
然后 removeAll

解决方案 »

  1.   

    唉,年轻人,java.util.ArrayList的removeAll源码怎么写不就好了
      

  2.   

    import java.util.Arrays;
    public class Temp {
    public static void main(String[] args) {
    String InitProducts[] = {"商品01","商品05","商品04","商品02","商品03"};
    String deleteProducts[] = {"商品04","商品02"};
    String newProducts[] = new String[InitProducts.length - deleteProducts.length];
    int count = 0;
    for(int i=0;i<InitProducts.length;i++){
    boolean flag = true;
    String temp = InitProducts[i];
    for(int j=0;j<deleteProducts.length;j++){
    if(temp.equals(deleteProducts[j])){
    flag = false;
    break;
    }
    }
    if(flag){
    newProducts[count++] = temp;
    }
    }
    System.out.println(Arrays.toString(newProducts));
    }

    }
      

  3.   

    String InitProducts[] = {"商品01","商品05","商品04","商品02","商品03"};
    String deleteProducts[] = {"商品04","商品02"};String newProducts[] = new String[InitProducts.length - deleteProducts.length];
    for (String initItem : InitProducts) {
        boolean delete = false;
        for (String deleteItem : deleteProducts) {
            if (deleteItem.equals(initItem) {
                delete = true;
            }
        }
        
        if (!delete) {
            newProducts[i++] = initItem;
        }
    }大概这样,没测试
      

  4.   


    String InitProducts[] = {"商品01","商品05","商品04","商品02","商品03"};
    String deleteProducts[] = {"商品04","商品02"};
    String[] newProducts=new String[InitProducts.length-deleteProducts.length];
    //遍历数组,将重复的商品制空
    for(int i=0;i<deleteProducts.length;i++)
    {
    for(int j=0;j<InitProducts.length;j++)
    {

    if(deleteProducts[i].equals(InitProducts[j]))
    {
    InitProducts[j]=null;

    }
    }

    }

    //遍历新数组,将null的元素不入新数组
    int num=0;
    for(int i=0;i<InitProducts.length;i++)
    {


    if(InitProducts[i]!=null)
    {

    newProducts[num]=InitProducts[i];
    num++;
    }

    }
    生搬硬套给你写了一个,不过可用,亲测
      

  5.   

    仅供参考(借助于Arrays类): public static String[] removeStringArrays(String[] s1, String[] s2) {
    String stringS1 = Arrays.toString(s1).replaceAll(", ", ",").replace("[","").replace("]","");//把原数组变成字符串并整理。
    for(String s:s2) {//通过字符串替换去掉数组s2里的元素。
    stringS1 = stringS1.replaceAll(s, "").replaceAll(",,",",");
    }
    return stringS1.split(",");//反变成数组。
    }
      

  6.   

    不能用集合,就用Map呗import java.util.Arrays;
    import java.util.HashMap;
    import java.util.Map;public class MapTest {
         public static void main(String[] args) {
    // TODO Auto-generated method stub      String InitProducts[] = {"商品01","商品05","商品04","商品02","商品03"};
             String deleteProducts[] = {"商品04","商品02"};      Object object = new Object();
          Map<String, Object> map = new HashMap<String, Object>();
          
          for(String init :InitProducts)
          {
          map.put(init, object);
          }
          
          for(String delete: deleteProducts)
          {
          if(map.get(delete)!= null)
          map.remove(delete);
          }
          
          String[] newProducts = new String[map.size()];
          map.keySet().toArray(newProducts);
          
          System.out.println(Arrays.toString(newProducts));
    }}打印结果如下:
    [商品01, 商品03, 商品05]