java - 等于和包含有什么区别

标签 java search match

我不知道使用什么更好,而我需要返回 boolean 值,搜索匹配,使用:包含或等于。 以下是一些示例。

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. 什么值得使用?

感谢您的提前回复

最佳答案

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

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

/**
* 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。

无论您决定采取哪种方法,都可以接受。具体到您的情况,由于您正在检查一个硬编码值,在我看来使用包含看起来更整洁方法,但这不是唯一的正确答案。

关于java - 等于和包含有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54855461/

相关文章:

java - Eclipse jar 在项目类路径上发生冲突

java - 参数 redirectattributes 是模型或映射类型,但不能从实际模型分配

Mysql: LIKE CONCAT Replacement --> less performance heavy

language-agnostic - 如何在文本中搜索人名? (启发式)

javascript - Angular JS | Angular 验证匹配密码

Android Studio Firebase 数据与 ID 对比

java - 每当我向数据库添加一些表时,就没有这样的表错误

java - Json 不适用于指定的 URL

javascript - 自动完成功能消除了对移动 View 的关注

excel - 如何使用具有两个匹配函数的地址函数作为宏或 VBA 的输入?