zoukankan      html  css  js  c++  java
  • 筛选两个数组中不同的元素

    在页面中有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;
        }

    结果

  • 相关阅读:
    VS.NET提示"试图运行项目时出错:无法启动调试。绑定句柄无效"解决办法
    鼠标移动之hook学习
    今天完成任务之SQL中len的使用
    继承(2)方法《.NET 2.0面向对象编程揭秘 》
    框架设计:CLR Via C# 第二章
    启动IIS时提示“服务没有及时响应启动或控制请求”几种解决方法
    C#中处理字符串和数字
    TreeView实现权限管理
    鼠标单击右击双击简单功能的实现
    richTextBox 中插入图片
  • 原文地址:https://www.cnblogs.com/heyesp/p/10717575.html
Copyright © 2011-2022 走看看