等于和包含之间有什么区别

时间:2019-02-24 19:05:13

标签: java search match

我不知道该使用什么更好,而我需要返回布尔值,使用:包含或等于来搜索匹配项。 这是一些示例。

List<String> names = new ArrayList<>();
names.add(“John”);
names.add(“Laura”);
names.add(“Nick”);

等于:

boolean check;
for(String name : names)
{
 if(“Laura”.equals(name))
    { 
  check = true;
    }
}

包含:

boolean check;
check = names.contains(“Laura”);
  1. 实际区别是什么?
  2. 什么值得使用?

提前响应

2 个答案:

答案 0 :(得分:4)

String equals()方法根据字符串的内容比较两个给定的字符串。如果任何字符不匹配,则返回false。如果所有字符都匹配,则返回true。对于您的方案,您将浏览列表中的每个字符串,将其与所需的字符串进行比较,如果它们相同,则返回true。

如果此List包含指定的元素,则 ArrayList.contains(Object)方法将返回true。 java.util.ArrayList contains 方法的实际实现如下:

/**
* Returns true iff element is in this ArrayList.
*
* @param e the element whose inclusion in the List is being tested
* @return true if the list contains e
*/
public boolean contains(Object e)
{
   return indexOf(e) != -1;
}

ArrayList的indexOf()方法返回此列表中指定元素的首次出现的索引;如果此列表不包含该元素,则返回-1。

无论您决定采用哪种方法,都可以接受。特别是在您的情况下,由于您要检查的是硬编码值,因此我认为看起来更整洁使用包含方法,但这不是一个正确的答案。

答案 1 :(得分:0)

<块引用> <块引用> <块引用>

在 Java 中,String equals() 方法根据字符串的数据/内容比较两个给定的字符串。如果两个字符串的所有内容都相同,则返回 true。如果所有字符都不匹配,则返回 false。

<块引用> <块引用> <块引用>

contains 方法 -> 如果子字符串存在于主字符串中,则返回 true

例如:

    String a = "Jarvis123";
    String b = "Jarvis";

    System.out.println(a.contains(b));  // will return true
    System.out.println(a.equals(b));    // will return false