Что быстрее: сравнение int и сравнение объектов - PullRequest
0 голосов
/ 15 октября 2018

В JAVA я даю идентификационные номера (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);

-

}
}

1 Ответ

0 голосов
/ 15 октября 2018

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, чтобы быть в безопасности.

...