1. Collection に、データがたくさん入ってます。
 データは、Hogeクラスのサブクラスのインスタンスです。
2. そのCollectionから、データを一個探します。
 検索にはFugaクラスのサブクラスのインスタンスを使います。

このとき
Fuga findKey = ...;
for( Iterator it = Collection.iterator; it.hasNext(); )
    if( findKey.isEqualsTo( (Hoge)it.next() ) )
        return true;
return false;
と検索用のコードを書き、抽象メソッドFuga#isEqualsTo( Hoge hoge )を
boolean FugaSub1#isEqualsTo( Hoge hoge ) {
    return hoge instanceof hogeSub1 && ((hogeSub1)hoge).foo() == fugaSub1.member;
}
などのように実装しました。


俺ってinstanceofが嫌いなんです。
で、このような、コレクションからオブジェクトを検索するような方法が
全うなのかそうでないのかを教えてもらいたいのです。
もしもさ、もしも、きみなら、どんな風に書く?