Java 如何比较两个列表以获得匹配元素和非匹配元素
下面的第1点和第2点是我的输入,在下面的代码中,我试图比较Arraylist以获得匹配和不匹配的元素,但我只获得不匹配的记录Java 如何比较两个列表以获得匹配元素和非匹配元素,java,arraylist,Java,Arraylist,下面的第1点和第2点是我的输入,在下面的代码中,我试图比较Arraylist以获得匹配和不匹配的元素,但我只获得不匹配的记录 arraylist1=[检查凭证等于,凭证日期等于,基金号等于,账号等于,Tin等于,公司号等于,经销商号等于,会员Id等于,集团Id等于,账户类型等于,凭证类型代码等于,打印等于,测试二] arraylist2=[文档日期] 等于 两者之间,基金数量相等 账号 等于 锡等于锡 比如,公司数量等于 像,经销商号码像 相等] 3.当我试图从“arrayList2”中删除
HashSet<String> hs1 = new HashSet<String>();
HashSet<String> hs2 = new HashSet<String>();
for (String match : arraylist2 ) {
hs1.add(match);
}
for (String match : arraylist1) {
hs2.add(match);
}
for (String match : hs2) {
boolean b = hs1.add(match);
if (b == false) {
matchingFields = match;
System.out.println("-----------------matching Elements--------------------- = " +
matchingFields);
} else {
nonMatchingFields = match;
System.out.println("-----------------Not matching elements--------------------- = " +
nonMatchingFields);
}
}
-----------------不匹配的元素----------------=类似于中的等于的帐号
-----------------不匹配元素-------------------=公司编号,比如Equals,我用一个简单的main方法设置了它,它似乎对我有效。你可能想用一个像我这样的简单示例来尝试它
package test;
import java.util.ArrayList;
import java.util.HashSet;
class Test{
public static void main(String[] args) {
ArrayList<String> a1 = new ArrayList<String>();
a1.add("a");
a1.add("b");
ArrayList<String> a2 = new ArrayList<String>();
a2.add("c");
a2.add("a");
checkMatch(a1, a2);
}
public static void checkMatch(ArrayList<String> arraylist1, ArrayList<String> arraylist2 ) {
HashSet<String> hs1 = new HashSet<String>();
HashSet<String> hs2 = new HashSet<String>();
for (String match : arraylist2 ) {
hs1.add(match);
}
for (String match : arraylist1) {
hs2.add(match);
}
for (String match : hs2) {
boolean b = hs1.add(match);
if (b == false) {
String matchingFields = match;
System.out.println("-----------------matching Elements--------------------- = " +
matchingFields);
} else {
String nonMatchingFields = match;
System.out.println("-----------------Not matching elements--------------------- = " +
nonMatchingFields);
}
}
}
}
封装测试;
导入java.util.ArrayList;
导入java.util.HashSet;
课堂测试{
公共静态void main(字符串[]args){
ArrayList a1=新的ArrayList();
a1.添加(“a”);
a1.添加(“b”);
ArrayList a2=新的ArrayList();
a2.添加(“c”);
a2.添加(“a”);
检查匹配(a1,a2);
}
公共静态无效检查匹配(ArrayList ArrayList 1、ArrayList ArrayList 2){
HashSet hs1=新的HashSet();
HashSet hs2=新的HashSet();
for(字符串匹配:arraylist2){
hs1.添加(匹配);
}
for(字符串匹配:arraylist1){
hs2.添加(匹配);
}
用于(字符串匹配:hs2){
布尔b=hs1.add(匹配);
如果(b==false){
字符串匹配字段=匹配;
System.out.println(“--------------匹配元素-------------------=”+
匹配字段);
}否则{
字符串非匹配字段=匹配;
System.out.println(“--------------不匹配元素-------------------=”+
非匹配字段);
}
}
}
}
输出:
-----------------匹配元素----------------=a
-----------------不匹配元素----------------=b您可以通过使用单个hashmap获得相同的结果
import java.util.*;
公共课堂实践{
公共静态void main(字符串[]args){
ArrayList ArrayList 1=新ArrayList(Arrays.asList(“检查凭证等于”、“凭证日期等于之间”、“基金号等于”、“账户号等于中”、“Tin号等于”、“公司号等于”、“经销商号等于中”、“会员Id等于中”、“组Id等于中”、“账户类型等于中”),“文档类型代码,如中的等号”、“打印等号”、“测试二”);
ArrayList ArrayList 2=新的ArrayList(Arrays.asList(“文档日期等于之间”、“基金号等于中”、“账号等于中”、“Tin等于中”、“公司号等于中”、“经销商号等于中”));
HashSet hs=新的HashSet(arraylist1);
for(字符串匹配:arraylist2){
如果(hs.包含(匹配)){
System.out.println(“--------------匹配元素-------------------=”+匹配);
}
否则{
System.out.println(“--------------不匹配元素-------------------=”+匹配);
}
}
}
}
为什么标记了selenium
和selenium webdriver
?因为我输入的两个数据通过TestNg selenium code从URL检索并不重要,所以即使不使用Seleniumdid检查是否有多余的空间,您也可以始终构造一个HashSet()
(无论是在行乞处,还是在字符串的中间或末尾)?删除多余的空间后,我将以以下格式输出=[文档日期,如EqualsBetween,基金编号EqualsLike,账号,如Equalsin,Tin EqualsLike,
package test;
import java.util.ArrayList;
import java.util.HashSet;
class Test{
public static void main(String[] args) {
ArrayList<String> a1 = new ArrayList<String>();
a1.add("a");
a1.add("b");
ArrayList<String> a2 = new ArrayList<String>();
a2.add("c");
a2.add("a");
checkMatch(a1, a2);
}
public static void checkMatch(ArrayList<String> arraylist1, ArrayList<String> arraylist2 ) {
HashSet<String> hs1 = new HashSet<String>();
HashSet<String> hs2 = new HashSet<String>();
for (String match : arraylist2 ) {
hs1.add(match);
}
for (String match : arraylist1) {
hs2.add(match);
}
for (String match : hs2) {
boolean b = hs1.add(match);
if (b == false) {
String matchingFields = match;
System.out.println("-----------------matching Elements--------------------- = " +
matchingFields);
} else {
String nonMatchingFields = match;
System.out.println("-----------------Not matching elements--------------------- = " +
nonMatchingFields);
}
}
}
}