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

Gip*_*ing 0 java search match

我不知道有什么更好的用法,虽然我需要返回布尔值,使用:contains或equals搜索匹配项。这里有些例子。

List<String> names = new ArrayList<>();
names.add(“John”);
names.add(“Laura”);
names.add(“Nick”);
Run Code Online (Sandbox Code Playgroud)

等于 :

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

包含:

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

提前响应

vs9*_*s97 5

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

ArrayList.contains(对象)如果此列表包含指定的元素方法返回true。包含方法 的实际实现java.util.ArrayList如下:

/**
* 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;
}
Run Code Online (Sandbox Code Playgroud)

indexOf()ArrayList 的方法返回此列表中指定元素的第一个匹配项的索引;如果此列表不包含该元素,则返回-1。

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