在頁面中有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