假設號碼是什麼使你的類的任何實例「獨一無二」爲比較的目的,你應該考慮重寫equals和hashCode方法。
這樣,您就可以使用indexOf(Object o)在集合中找到類中的實例,例如ArrayList。
例如:
public class ExampleClass
{
private int number;
public ExampleClass(int number)
{
this.number = number;
}
public int getNumber()
{
return number;
}
public void setNumber(int number)
{
this.number = number;
}
@Override
public boolean equals(Object other)
{
boolean isEqual = false;
if (other instanceof ExampleClass)
{
ExampleClass otherEC = (ExampleClass)other;
isEqual = number == otherEC.number;
}
return isEqual;
}
@Override
public int hashCode()
{
return number;
}
}
和
public static void main(String[] args)
{
List<ExampleClass> list = new ArrayList<ExampleClass>();
ExampleClass ec1 = new ExampleClass(1);
list.add(ec1);
list.add(new ExampleClass(3));
list.add(new ExampleClass(102));
System.out.println(list.indexOf(new ExampleClass(3)));
System.out.println(list.indexOf(new ExampleClass(1)));
System.out.println(list.indexOf(ec1));
System.out.println(list.indexOf(new ExampleClass(5)));
}
將產生以下的輸出:
1
0
0
-1
請看看這裏的,爲什麼你應該重寫equals和hashCode瞭解更多信息要存儲在收藏中的對象:
Why do I need to override the equals and hashCode methods in Java?
'如果我在不同的類中有多個「exampleClass」對象,我如何從「exampleClass」內的多個對象中獲取特定的對象,這樣我就可以從「exampleClass」中訪問特定的對象。因爲它沒有意義:) – nem035 2014-09-20 17:41:45
你的問題有點含糊,但你可能想使用['HashMap'](http://docs.oracle.com/javase/7/docs/api /java/util/HashMap.html),假設每個對象都有不同的數字,並且你知道這些數字是什麼。 –
2014-09-20 17:56:01