2

TreeSet 内で特定の regNumber を持つメンバーを検索しようとしています。ただし、 regNumber は、姓/名の順に並べられた TreeSet 内の要素の順序とは何の関係もありません。

私が今やろうとしている方法は、TreeSet のすべての要素を反復処理し、探している regNumber に一致する要素を返すことです。それは良い習慣ですか、それともあまりにも非効率的ですか?

public class Members implements Comperable <Members> {

private String firstName;
private String lastName;
private int regNumber;

}

PS TreeSet 内の要素は、姓/名の順に並べる必要があります

4

1 に答える 1

8

名前でインデックスを作成してから検索しているという事実はregNumber、の観点からは、regNumberアイテムの順序付けられていないコレクションがあることを意味します。したがって、すべてのアイテムに対する線形検索よりも優れた方法はありません。

もっと良いものが必要な場合はregNumber、 をハッシュ テーブル (HashMapまたは何でも) のキーとして使用し、元のMemberオブジェクトへの参照を値として持つことができます。そうすれば、より多くのスペースを使用するという犠牲を払って、より効率的に検索できます。

于 2012-05-01T20:48:02.917 に答える