求算法  找出A数组中存在B数组中不存在的数据
A :1 1 2 3 4 4 
B :1 2 3 4 5 6 7 8 9
求出5 6 7 8 9

解决方案 »

  1.   

    Integer[] a = new Integer[]{1,1,2,3,4,4};
    Integer[] b = new Integer[]{1,2,3,4,5,6,7,8,9};
    HashSet<Integer> set = new HashSet<Integer>(Arrays.asList(a));
    for (int i : b) {
    if (!set.contains(i)) {
    System.out.println(i);
    }
    }
      

  2.   


    public static void do4() {
    int[] a = {1, 1, 2, 3, 4, 4};
    int[] b = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    Map<Integer, Boolean> m = new HashMap<Integer, Boolean>();
    Map<Integer, Boolean> m2 = new HashMap<Integer, Boolean>();
    for(int i : a) {
    if(!m.containsKey(i)) {
    m.put(i, Boolean.TRUE);
    }
    }
    for(int i : b) {
    if(!m.containsKey(i)) {
    m2.put(i, Boolean.TRUE);
    }
    }
    for(Entry<Integer, Boolean> e : m2.entrySet()) {
    System.out.println(e.getKey());
    }
    }
      

  3.   


    public class Test {
    public static void main(String args[])
    {
    int[] a = {1,1,2,3,4,4,};
    int[] b = {1,2,3,4,5,6,7,8,9};

    boolean flag = false;

    for(int i = 0; i < b.length; i++)
    {
    for(int j = 0; j < a.length; j++)
    {
    if(b[i] == a[j])
    {
    flag = false;
    break;
    } else 
    {flag=true;}
    }

    if(flag)
    {
    System.out.println(b[i]);
    }

    }
    }
    }
      

  4.   


    public class Test {  public static void main(String[] args)throws IOException{ 
            // TODO code application logic here 
    List<Integer> l1=new ArrayList<Integer>();
    List<Integer> l2=new ArrayList<Integer>();
    l1.add(1);
    l1.add(1);
    l1.add(2);
    l1.add(3);
    l1.add(4);
    l1.add(4);
    l2.add(1);
    l2.add(2);
    l2.add(3);
    l2.add(4);
    l2.add(5);
    l2.add(6);
    l2.add(7);
    l2.add(8);
    l2.add(9);
    List<Integer> l3=new ArrayList<Integer>(l2);
    l2.retainAll(l1);
    l3.removeAll(l2);
    System.out.println(l3); } 
    }