1

場所と地域のリストをすばやく処理するには、最適なデータ構造を選択する必要があります。

場所(都市)には単純なPOJOがあります。

public class Location {

    private String name;
    private int post; //id

そして地域(地区)の場合:

public class Region {
    private String name;
    private int id;
    private List<Location> cities;

そして最後に私はListオブジェクトRegionを持っています。私は何をする必要がありますか:

  1. post(id)でロケーション名を検索
  2. 検索場所はその名前で投稿します。:名前は一意ではないため、同じ名前の場合は、別の場所よりも具体的な場所を優先する必要があります

問題は、どのデータ構造を使用すべきかということです。すべての地域のすべての場所が含まれているTreeMapについて考えています。そのため、Name(string)で場所をすばやく取得できます。p 1の場合、解決策があります。場所の投稿に地域のIDが含まれています。したがって、Regionのid = 1の場合、その場所の投稿は10001、10002などになります。または、プロジェクトにすでに存在するため、Guavaによって導入された新しいコレクションタイプを選択する必要がありますか?

4

2 に答える 2

2

クラスを作成することをお勧めしますLocationRepository

class LocationRepository {
    Location getById(int id);
    Collection<Location> getByName(String id);
}

このリポジトリは、2つのコレクションを保持する必要があります。マップ(場所のHashMapまたはTreeMapのいずれか:Map<Integer, Location>ここで、キーは場所IDです。2番目のマップは[MulitMap][1]、名前と一致する場所のコレクションの間でマップするGuavaからのものである必要があります。

于 2012-05-06T11:34:42.167 に答える
2

すべての場所を2つに追加しますHashMap

  1. キーとしてロケーション名を持ち、値としてロケーションのリストを持つすべてのロケーションを持つもの。
  2. キーとしてid、値としてLocationを持つ他の?

できれば、ルックアップを実行する1つのクラスの2つのハッシュマップを非表示にしてください。

それとも私は何かが足りないのですか?

于 2012-05-06T11:38:03.413 に答える