作者:小song喪_774 | 来源:互联网 | 2022-12-02 12:11
在JAVA中,我给我的对象提供了id号(int).我想比较给定的对象是否是预期的对象.
我应该使用哪个?哪个更快?
if(civ!=this)
要么
if(civ.id!=id)
编辑:
额外的信息:
Class Civ {
int id;
public Civ(int i){
id = i;
}
public boolean checkIfOther(Civ civ){
这个:
return (civ.id !=id);
或这个:
return(civ !=this);
-
}
}
Amadan..
6
civ != this
是(略几乎可以肯定不知不觉)的速度比civ.id != id
.但是,请注意,这两个是只有同civ
是coreferent来this
.看这个例子:
String a = new String("hello")
String b = a;
a == b // true
String c = new String("hello")
a == c // false!
如果你是,例如,装载civ
来自数据库,或从用户输入构建它,或以任何其他方式从直接分配创建它放在一边this
(反之亦然),第一种方法会失败,因为他们将是两个不同的-即使可能是平等的 - 对象.如果不确定,请使用id
以确保安全.
1> Amadan..:
civ != this
是(略几乎可以肯定不知不觉)的速度比civ.id != id
.但是,请注意,这两个是只有同civ
是coreferent来this
.看这个例子:
String a = new String("hello")
String b = a;
a == b // true
String c = new String("hello")
a == c // false!
如果你是,例如,装载civ
来自数据库,或从用户输入构建它,或以任何其他方式从直接分配创建它放在一边this
(反之亦然),第一种方法会失败,因为他们将是两个不同的-即使可能是平等的 - 对象.如果不确定,请使用id
以确保安全.
我会用"几乎绝对不知不觉"取代"略微".这是一个优化级别,一旦人们测量到它是应用程序的主要性能瓶颈之一,就绝对应该尝试.这种情况极有可能永远不会发生.