筛选两个数组中不同的元素

在页面中有checkbox多项选择时,如果未选择某一项,有时候想要获得未选中的checkbox的值,就需要从数据库中查询所有的值(list),把从前端传到后端的选中的checkbox值作为数组t1,把从数据库中获得的所有的checkbox的值作为t2或list2

1.筛选数组t2中与t1不同的元素

private  <T> List<T> compareArrary(T[] t1, T[] t2) {
        List<T> list1 = Arrays.asList(t1);
        List<T> list2 = new ArrayList<T>();
        for (T t : t2) {
            if (!list1.contains(t)) { 
                list2.add(t); //筛选t2中与t1不同的元素
  } } return list2; }

 

2.筛选两个数组中不同的元素

private  <T> List<T> compareArray(T[] t1, T[] t2) {
        List<T> list1 = Arrays.asList(t1);
        List<T> list2 = Arrays.asList(t2);
        List<T> list3 = new ArrayList<T>();
        for (T t : t2) {
            if (!list1.contains(t)) {
                list3.add(t); //筛选t2中与t1不同的元素
            }
        }
        for (T t : t1) {
            if (!list2.contains(t)) {
                list3.add(t); //筛选t1中与t2不同的元素
            }
        }
        return list3;
    }

3.筛选数组和ArrayList的不同元素

private  <T> List<T> compare(T[] t1, List<T> list2) {
        List<T> list1 = Arrays.asList(t1);
        List<T> list3 = new ArrayList<T>();
        for (T t : list2) {
            if (!list1.contains(t)) {
                list3.add(t); //筛选t2中与t1不同的元素
            }
        }
        for (T t : t1) {
            if (!list2.contains(t)) {
                list3.add(t); //筛选t1中与t2不同的元素
            }
        }
        return list3;
    }

例子

public class test {
   
    public static void main(String[] args){
        test test=new test();
        Integer[] a={1,3,5,9};
        Integer[] b={2,3,5,7,0};
        List<Integer> list = test.compare(a, b);
        for (int i=0;i<list.size();i++) {
            System.out.print(list.get(i)+",");
        }

    }
    private  <T> List<T> compare(T[] t1, T[] t2) {
        List<T> list1 = Arrays.asList(t1);
        List<T> list2 = Arrays.asList(t2);
        List<T> list3 = new ArrayList<T>();
        for (T t : t2) {
            if (!list1.contains(t)) {
                list3.add(t); //筛选t2中与t1不同的元素
            }
        }
        for (T t : t1) {
            if (!list2.contains(t)) {
                list3.add(t); //筛选t1中与t2不同的元素
            }
        }
        return list3;
    }

结果

 

posted @ 2019-04-16 16:50  heyesp  阅读(1186)  评论(0编辑  收藏  举报