首页 > 解决方案 > 比较java中的2个列表并返回差异

问题描述

您好,我在 java 中使用 selenium。我必须比较列表并返回差异。我从数据库中获取这些值

清单 A 有身份证和所得税,清单 B 有身份证和所得税。

我想将 List A Ids 与 List B Ids 和 List A 所得税与 List B 所得税进行比较。比较后我想返回差异。即,e

示例:如果列表 A [1,2,3] 中的 IDS 和列表 A 中的所得税是 [10.25,1.58,30.28]

列表 B[1,2,3] 中的 ID 和列表 B 中的所得税是 [10.25,1.57,28.28]

我想显示比较后哪些值不同,以及哪些 ID 不同

我想要输出,因为 Ids 2 和 3 的所得税不同。

为了比较列表,我尝试了以下代码

try {
    IDList.equals(AfterChangeIDList);
        log.info("ID List are equal");
    }catch (Exception e) {
        log.warn("IDList are not equal");
        throw e;
    }

//比较所得税清单

try {
        IncomeTaxList.equals(AfterChangeIncomeTaxList);
        log.info("Income Tax list are equal");
    }catch (Exception e) {
        log.warn("Income Tax list are not equal");
        throw e;        
    }

我可以知道如何退还差价吗?

标签: javalist

解决方案


请尝试以下方法:

public void test() {
        List<Integer> ids = new ArrayList<>();
        ids.add(1);
        ids.add(2);
        ids.add(3);
        List<Double> taxes = new ArrayList<>();
        taxes.add(10.25d);
        taxes.add(1.58d);
        taxes.add(30.28d);
        List<Double> taxes2 = new ArrayList<>();
        taxes2.add(10.25d);
        taxes2.add(1.57d);
        taxes2.add(28.28d);

        List<Integer> differentIds = new LinkedList<>();
        for (int i = 0; i < ids.size(); i++) {
            if (!taxes.get(i).equals(taxes2.get(i))) {
                differentIds.add(ids.get(i));
            }
        }
        System.out.println("Different values for ids: " + differentIds);
    }

推荐阅读