すべての国のリストを格納できるJava構造が必要です。どのJavaデータ構造をお勧めしますか?
6 に答える
重複を回避するSet
ようなコレクションの実装を使用できます(名前だけの場合)。HashSet
国コードと名前を保持したい場合は、Map
コレクションである可能性があります。
コレクションを反復処理しますか? その場合、java.util.ArrayList.
ある種のルックアップを行うためにそれを使用するつもりですか?「これは存在しますか」というシナリオのように?その場合、java.util.HashSet
国ごとに追加情報を添付する必要がありますか? もしそうなら、java.util.HashMap
ルックアップと順序付けされた反復が必要ですか? その場合、java.util.TreeSet.
懸念すべき並行性もありますが、それについての言及は見られなかったので、それらについては省略します。
重複が予想されない限り、HashSet が適していると思います。HashSet は、検索を高速化する一定時間のルックアップを提供します。データ構造が複数のスレッドによってアクセスおよび変更されることが予想される場合は、Collections.SynchronizedSet や CopyOnWriteArrayList などの他のスレッドセーフなバリアントを検討できます。オプションを絞り込むには、ユースケースの詳細を提供する必要があります
アプリに言語のリストがあるので、最近非常に似たようなことをしました。そのために Enum を使用するだけです。国のリストはかなり安定しているため、このクラスを頻繁に再コンパイルする必要はありません;)
セット内の要素の一意性と一定時間のキー検索の両方を提供する HashSet を使用する必要があります。
使ってみてくださいDictionary<k,v>
、私はそれをお勧めします