私は以下の簡単なテストを試みました。indexOfとの比較の使用
class ZiggyTest{
public static void main(String[] args){
List<Cities> cities3 = new ArrayList<Cities>();
Cities city = new Cities("London");
cities3.add(new Cities("Manchester"));
cities3.add(new Cities("Glasgow"));
cities3.add(new Cities("Leeds"));
cities3.add(city);
cities3.add(new Cities("Leicester"));
cities3.add(new Cities("Croydon"));
cities3.add(new Cities("Watford"));
System.out.println("IndexOf(new Croydon) "
+ cities3.indexOf(new Cities("Croydon")));
System.out.println("IndexOf(city) "
+ cities3.indexOf(city));
}
}
class Cities implements Comparable<Cities>{
String title;
Cities(String aTitle){
this.title = aTitle;
}
public String getTitle(){
return title;
}
public String toString(){
return "Title : " + title;
}
public int compareTo(Cities c){
return title.compareTo(c.getTitle());
}
}
上記のテストの出力は
IndexOf(new Croydon) -1
IndexOf(city) 3
「=二行目は3を生産している理由を私は理解しますが、最初の行がタイトルで新しいものを見つけていない理由を私は理解していないですクロイドン "。 1
ことは、このリストで指定された要素が最初に出現する位置のインデックスを返しますよう、または-1このリストは要素が含まれていない場合APIは
indexOf
方法について説明します。より正式には、そのようなインデックスがない場合、(o==null ? get(i)==null : o.equals(get(i)))
、または-1
のような最小インデックスiを返します。
オブジェクトがnullの場合、nullオブジェクトの最初のオカレンスのインデックスをリストから返します。 nullでない場合は、渡されたオブジェクトequalsメソッドがtrueを返す最初のオカレンスのインデックスを返します。
cities3.indexOf(new Cities("Croydon")
として作成されたオブジェクトは、以前に追加されたオブジェクトと同じでなければなりません。cities3.add(new Cities("Croydon"));
?
おそらく、JavaがCroydonを忘れたいのですか?本当にそれを責めることはできません...(実際の解決策についてはmishadoffの答えを参照してください、しかし、古いWhitgiftianとして、私は抵抗することができませんでした...) –
haha非常に面白い:) – ziggy