java - 比较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;
}
我可以知道如何退还差价吗?
解决方案
请尝试以下方法:
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);
}