String oldStr[] = {"A","B","C"};
String newStr[] = {"B","C","D","E"};java实现找出相对于oldStr来说,新增了哪个字符串,删除了哪个字符串
期望输出结果
新增:“D”和“E”
删除:“A”

解决方案 »

  1.   


    String oldStr[] = {"A","B","C"};
    String newStr[] = {"B","C","D","E"};

    List<String> oldStrList = new ArrayList<String>(Arrays.asList(oldStr));
    List<String> newStrList = new ArrayList<String>(Arrays.asList(newStr));
    oldStrList.removeAll(newStrList);
    System.out.println(oldStrList);

    oldStrList = new ArrayList<String>(Arrays.asList(oldStr));
    newStrList = new ArrayList<String>(Arrays.asList(newStr));
    newStrList.removeAll(oldStrList);

    System.out.println(newStrList);
      

  2.   

    先求2个数组的并集 
    并集减去oldStr 剩下的就是新增的
    并集减去onewStr 剩下的就是删除的
      

  3.   

    代码是这样的:
    import java.util.*;
    public class Test
    {
      public static void main(String[] args)
      {
          String oldStr[] = {"A","B","C"};
          String newStr[] = {"B","C","D","E"};
          ArrayList al=new ArrayList();
          ArrayList bl=new ArrayList();
          ArrayList cl=new ArrayList();
          al=Test.merge(oldStr,newStr);
          System.out.println ("-----------------------");
          System.out.println ("并集是:");
          Test.prAL(al);
          bl=Test.sub(al,oldStr);
          System.out.println ("-----------------------");
          System.out.println ("新增的是:");
          Test.prAL(bl);
          al=Test.merge(oldStr,newStr);
          cl=Test.sub(al,newStr);
          System.out.println ("-----------------------");
          System.out.println ("删除的是:");
          Test.prAL(cl);
      }
      public static ArrayList merge(String[] a,String[] b )
      {
          ArrayList al=new ArrayList();
          for(int i=0;i<a.length;i++)
                al.add(a[i]);
          for(int i=0;i<b.length;i++)
               if(al.indexOf(b[i])==-1)
                    al.add(b[i]);
          return al;  }
      public static ArrayList sub(ArrayList xl,String[] b )
      {      for(int i=0;i<b.length;i++)
               if(xl.indexOf(b[i])!=-1)
                    xl.remove(b[i]);
          return xl;  }
      public static void prAL(ArrayList al)
      {  
                 System.out.print(al.toString());  }
    }
      

  4.   

    二维数组的:
    import java.util.*;
    public class Test
    {
      public static void main(String[] args)
      {
          String oldStr[][] = {{"A","B","C"},{"F","H"}};
          String newStr[][] = {{"B","C","D","E"},{"i","j"}};
          ArrayList al=new ArrayList();
          ArrayList bl=new ArrayList();
          ArrayList cl=new ArrayList();
          al=Test.merge(oldStr,newStr);
          System.out.println ("-----------------------");
          System.out.println ("并集是:");
          Test.prAL(al);
          bl=Test.sub(al,oldStr);
          System.out.println ("-----------------------");
          System.out.println ("新增的是:");
          Test.prAL(bl);
          al=Test.merge(oldStr,newStr);
          cl=Test.sub(al,newStr);
          System.out.println ("-----------------------");
          System.out.println ("删除的是:");
          Test.prAL(cl);
      }
      public static ArrayList merge(String[][] a,String[][] b )
      {
          ArrayList al=new ArrayList();
          for(int i=0;i<a.length;i++)
            for(int j=0;j<a[i].length;j++)
                al.add(a[i][j]);
          for(int i=0;i<b.length;i++)
            for(int j=0;j<b[i].length;j++)
               if(al.indexOf(b[i][j])==-1)
                    al.add(b[i][j]);
          return al;  }
      public static ArrayList sub(ArrayList xl,String[][] b )
      {      for(int i=0;i<b.length;i++)
            for(int j=0;j<b[i].length;j++)
               if(xl.indexOf(b[i][j])!=-1)
                    xl.remove(b[i][j]);
          return xl;  }
      public static void prAL(ArrayList al)
      {  
                 System.out.print(al.toString());  }
    }