为什么打印错误的输出?

ArrayList<String> loc = new ArrayList<String>();


此arraylist存储以下值:

[topLeft, topLeft, topLeft, bottomLeft, topLeft, bottomLeft, topLeft, topLeft, Left, topLeft]


第一个索引0是= topLeft

if(loc.get(1)=="topLeft")
   System.out.println("same")

else {
   System.out.println("not same")
}


该程序打印错误的输出not same而不是same

最佳答案

使用equals(Object)方法,而不是==运算符,例如loc.equals("topLeft")

如果两个引用指向内存中的同一对象,则==运算符将返回true。 equals(Object o)方法检查两个对象是否相等,因此如果两个String仅包含相同顺序的相同字符,则将返回true。

09-25 21:36