为什么打印错误的输出?
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。