gpt4 book ai didi

java - 字符串列表的比较器

转载 作者:行者123 更新时间:2023-12-01 06:33:48 25 4
gpt4 key购买 nike

我是 Java 新手:)

我有 2 个字符串列表,我想知道比较这两个列表并得到一个包含另一个中不存在的字符串的结果数组的最有效方法是什么。例如,我有一个名为 oldStrings 的列表和一个名为 Strings 的列表。我已经看过 Comparator 函数,但不完全理解它是如何工作的,现在我想我可以创建一个 for 循环,循环遍历每个字符串,然后保存该字符串:

for (final String str : oldStrings) {
if(!strings.contains(str))
{
getLogger().info(str + " is not in strings list ");
}
}

此列表中最多有 200 个字符串。这是解决这个问题的最佳方法吗?谢谢!

最佳答案

Collection firstList = new ArrayList() {{
add("str1");
add("str2");
}};

Collection secondList = new ArrayList() {{
add("str1");
add("str3");
add("str4");
}};


System.out.println("First List: " + firstList);
System.out.println("Second List: " + secondList);

// Here is main part
secondList.removeAll(firstList);

System.out.println("Result: " + secondList);

更新:更复杂的代码版本

Collection<String> firstList = new ArrayList<String>();
firstList.add("str1");
firstList.add("str2");

Collection<String> secondList = new ArrayList<String>();
secondList.add("str1");
secondList.add("str2");
secondList.add("str3");


System.out.println("First List: " + firstList);
System.out.println("Second List: " + secondList);

// Here is main part
secondList.removeAll(firstList);

更新:

要获取两个字符串列表之间的实际差异,请执行此操作。

    Set<String> setOne = new HashSet<String>();        
Set<String> setTwo = new HashSet<String>();
setOne.add("1");
setOne.add("2");
setOne.add("5");
setTwo.add("1");
setTwo.add("3");
setTwo.add("4");
Set<String> setTwoDummy = new HashSet<String>(setTwo);
setTwo.retainAll(setOne);
setTwoDummy.addAll(setOne);
setTwoDummy.removeAll(setTwo);
System.out.println(""+setTwoDummy);

关于java - 字符串列表的比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4217740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com