java - 在 ArrayList 中搜索字符串;总是返回 false

标签 java search arraylist

我在使用我类的这种方法时遇到了问题。它总是返回 false。 乘客是一个单独的类。这是我的 Train 类中的一个方法,它创建一个 Passenger 对象的数组列表。我正在制作一种方法,该方法将在 ArrayList passengerList 中搜索以名称作为参数的 Passanger 对象。

public boolean search(String a){
    Passenger temp;
    boolean query = false;
    for (int i =0; i<passengerList.size(); i++)
    {
        temp=passengerList.get(i);
        if (temp.getName() == a)
        {
            query = true;
        }
    }
    return query;
}

最佳答案

 if (temp.getName() == a)

应该是

 if (temp.getName().equals(a))

字符串比较应始终使用 equals() 方法而不是 ==(字符串文字除外)。

如果 temp.getName()a 都没有指向同一个对象,== 条件将失败。

== 检查引用是否相等。 equals() 检查内容是否相等。

tutorial可能对你有帮助。

关于java - 在 ArrayList 中搜索字符串;总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13368426/

相关文章:

java - JPA ElementCollection 中的对象作为键

java - PrimeFaces + DataTable(编辑行) + JAVA + MYSQL

java - ArrayList 和单向链表一样吗?

java - 数组列表中的排序

LINUX:如何在不同的目录中搜索字符串?

javascript - 请为我解释一下这段 Javascript 代码

java - 修复动态 Web 项目中的 JDBC

java - 在 case 标签中使用 boolean 表达式的 Switch 语句

sql - 查询多种币种

php - 我被要求修复搜索功能中的错误。我在 yii 上不断收到 CDbException