在页面中有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; }
例子spa
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; }
结果code