当前位置: 首页 > 面试题库 >

字符串列表比较器

南门洋
2023-03-14
问题内容

我是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);


 类似资料:
  • 我目前正在为一个Spring MVC项目编写一些单元测试。由于返回的媒体类型是JSON,我尝试使用jsonPath检查是否返回了正确的值。 我遇到的麻烦是验证一个字符串列表是否包含正确的(并且仅仅是正确的)值。 我的计划是: 检查列表是否有正确的长度 对于应该返回的每个元素,检查它是否在列表中 可悲的是,这些东西似乎都不起作用。 以下是我的代码的相关部分: 只有前两个“期望”(isOk 有什么建议

  • 问题内容: 我听说散列(即将字符串或对象转换为数字)用于字符串等,因为比较数字比字符串更容易。如果为真,这是什么原因? 问题答案: 不一定是这种情况,但大多数时候可能是这样。 请考虑以下情况: 我想比较字符串“ apples”和“ oranges”。如果我只想确定“ apples” ==“ oranges”,我只需要比较每个字符串的第一个字符:’a’!=’o’=>“ apples”!=“ oran

  • 主要内容:equals() 方法,equalsIgnoreCase() 方法,equals()与==的比较,compareTo() 方法字符串比较是常见的操作,包括比较相等、比较大小、比较前缀和后缀串等。 在 Java 中,比较字符串的常用方法有 3 个:equals() 方法、equalsIgnoreCase() 方法、 compareTo() 方法。下面详细介绍这 3 个方法的使用。 equals() 方法 equals() 方法将逐个地比较两个字符串的每个字符是否相同。如果两个字符串具有相

  • 问题内容: 在继续之前: 我知道我们应该使用.equals()比较内容。 我现在只是在谈论以下情况下的实际引用是否相同… 说我们有以下内容: 我认为应该是正确的,因为在字符串池中,对“字符串”的引用应该与str1和str2相同,现在都是“字符串”。它应该为true,但最终为 false 。 我尝试过,这次返回了 true 。然后我尝试了: 同样是 System.out.println(“ str”

  • 如何比较两个列表是否相等验证数据来自Excel工作表。我需要验证两个列表是否相同,并且列表中没有附加元素或缺少元素。我不需要对列表进行排序。打印输出CAGID Excel data=CAGID Web列表

  • 我有一个由DB中称为Notes的对象填充的列表。对象的数量不同。我需要比较字符串变量,如果字符串相等,执行某个操作。如何完成这一点? 到目前为止,我的代码以NullPoInterExeption结尾: