zoukankan      html  css  js  c++  java
  • 获取两个列表中不同的数据

    package top.dj;
    
    import java.util.*;
    
    /**
     * @Author: DengJia
     * @Date: 2021/9/24 15:07
     * @Description: 获取两个列表中不同的数据
     */
    
    public class Test {
        public static void main(String[] args) {
            String[] a = {null, "21", "0", "39.42", "1013.34", "39.42", "3", "4.61", "14", "56", "56", "3", "9.22", "337.78", "0", "4", "18", "38", "7", "7", "9", "8", "19", "50", "16", "2", "3.6", "1.36", "75", "4", "26", "9.22", "3", "39.42", "337.78", "26", "50", "7", "7", "56", "9", "4", "56", "19", "18", "38", "7", "56", "19", "18", "56", "38", "7", "9", "4", "56", "1", "9.6", "10", "236.52", "6.57", "80.99", "2.7", "0", "0", "0", "7", "5", "21", "2.7", "80.99", "7", "0", "0", "0", "5", "21", "35.26", "3", "337.78", "9.22", "2.7", "80.99", "50", "0", "0", "0", "7", "5", "21", "80.99", "2.7", "10", "2.7", "0", "0", "0", "7", "5", "21", "2.7", "80.99", "2.7", "10", "0", "0", "0", "7", "5", "21", "2.7", "10", "2.7", "80.99", "0", "0", "7", "0", "21", "5", "2.7", "80.99", "2.7", "10", "26", "7", "0", "0", "0", "40.49", "2.7", "40.49", "10", "2.7", "2.7", "21", "13", "4", "0", "0", "7", "0"};
            String[] b = {null, "21", "0", "39.42", "1013.34", "39.42", "4.61", "3", "14", "56", "56", "9.22", "3", "337.78", "4", "0", "8", "19", "18", "7", "9", "38", "7", "50", "3.6", "1.36", "16", "2", "75", "4", "26", "3", "39.42", "9.22", "337.78", "7", "9", "56", "38", "7", "56", "4", "19", "18", "26", "50", "56", "7", "19", "18", "9", "56", "38", "7", "4", "56", "1", "9.6", "10", "236.52", "6.57", "2.7", "80.99", "0", "0", "7", "0", "21", "5", "80.99", "2.7", "0", "0", "0", "7", "5", "21", "35.26", "3", "9.22", "337.78", "80.99", "2.7", "50", "0", "0", "0", "7", "5", "21", "2.7", "2.7", "80.99", "10", "0", "0", "7", "0", "21", "5", "10", "2.7", "2.7", "80.99", "0", "0", "0", "7", "5", "21", "2.7", "2.7", "80.99", "10", "7", "0", "0", "0", "21", "5", "10", "2.7", "2.7", "80.99", "26", "0", "0", "0", "7", "2.7", "40.5", "2.7", "40.5", "10", "2.7", "21", "4", "13", "7", "0", "0", "0"};
    
            List<String> la = Arrays.asList(a);
            List<String> lb = Arrays.asList(b);
    
            System.out.println("disjoint = " + Collections.disjoint(la, lb));
            System.out.println("different = " + getDifferent(la, lb) + getDifferent(lb, la));
        }
    
    
        public static List<String> getDifferent(List<String> l1, List<String> l2) {
            Map<String, Integer> map = new HashMap<>(l1.size(), l2.size());
            List<String> diff = new ArrayList<>();
            List<String> maxList = l1;
            List<String> minList = l2;
            if (l2.size() > l1.size()) {
                maxList = l2;
                minList = l1;
            }
    
            for (String string : maxList) {
                map.put(string, 1);
            }
    
            for (String string : minList) {
                Integer cc = map.get(string);
                if (cc != null) {
                    map.put(string, ++cc);
                    continue;
                }
                map.put(string, 1);
            }
    
            for (Map.Entry<String, Integer> entry : map.entrySet()) {
                if (entry.getValue() == 1) {
                    diff.add(entry.getKey());
                }
            }
            return diff;
        }
    }
    
    

    参考:
    https://www.javaroad.cn/articles/3074
    https://www.cnblogs.com/userzf/p/13830962.html

    DJOSIMON
  • 相关阅读:
    el-select下拉框选项太多导致卡顿,使用下拉框分页来解决
    vue+elementui前端添加数字千位分割
    Failed to check/redeclare auto-delete queue(s)
    周末啦,做几道面试题放松放松吧!
    idea快捷键
    解决flink运行过程中报错Could not allocate enough slots within timeout of 300000 ms to run the job. Please make sure that the cluster has enough resources.
    用.net平台实现websocket server
    MQTT实战3
    Oracle 查看当前用户下库里所有的表、存储过程、触发器、视图
    idea从svn拉取项目不识别svn
  • 原文地址:https://www.cnblogs.com/DJOSIMON/p/15331314.html
Copyright © 2011-2022 走看看