我有一个 Android 应用,具有以下功能
private ArrayList<String> _categories; // eg ["horses","camels"[,etc]]
private int getCategoryPos(String category) {
for(int i = 0; i < this._categories.size(); ++i) {
if(this._categories.get(i) == category) return i;
}
return -1;
}
这是获取元素位置的“最佳”方式吗?还是在Java中有一个花哨的本机函数我应该利用?
==
会产生不正确的结果。 - user166390==
来比较它们...只是这不是正确的比较方式;-) - user166390String.equals
更像 JavaScript 中的===
吗?例如,检查值和类型是否相等? - JacksonkrNo.
==
是指“对象标识”,意思是“是同一个对象”。(若考虑只有一个值为42或字符'x'的数字,则对原始类型和引用类型都适用此观点)。Object.equals
是一种虚拟方法,定义于所有对象实例上,它表示“具有相同的值”,因为所有类类型都扩展自Object,应该用于所有对象相等测试。有很多问题涉及到==
与Object.equals
之间的区别,这是一个非常重要的概念需要理解!例如,以下语句是错误的:"hello" == new String("hello")!咦! - user166390