1

データベースには、次の形式のデータがあります。

ここに画像の説明を入力

要件は、次の形式で Excel のデータを表すことです。国名がタブ名を形成します。

ここに画像の説明を入力

すべてのDB行をオブジェクトに入れることを考えていました..フォーマットで達成するには、国のリストを繰り返し処理し、次に各国のリスト(たとえば、米国)で州のリスト(NY、NY)を選択し、次にそのループ内で各州 (例: NY) を反復処理して、New York と Alaby を取得します。他の州についてこれを繰り返し、ループから出て、同じ方法で他の国を繰り返します。

しかし、ここで私が直面している問題は、必要な形式で反復できるようにするために、そのデータを Java でどのように表現するかということです。そのため、米国を反復処理すると NY と NJ が得られ、NJ を反復処理するとその中の都市が得られます。私は打たれました。私を動かすためのいくつかの指針をアドバイスしてください

4

2 に答える 2

2

を使用しMap<String, Map<String, List<String>>>ます。

  1. 最初の文字列は国のキーです。
  2. Map は、キーが州で、値が都市のリストであるマップです。

データを挿入する前に、必ずデータを適切に初期化してください。たとえば、ここでは、ニューヨーク州のアメリカの都市として「ニューヨーク市」を挿入します。

Map<String, Map<String, List<String>>> fullMap = new HashMap<String, Map<String, List<String>>>();
fullMap.put("US", new HashMap<String, List<String>>());
fullMap.get("US").put("NY", new ArrayList<String>());
fullMap.get("US").get("NY").add("New York");

(US, NY) の都市のリストを取得するには、次のようにする必要があります。

List<String> nyCities = map.get("US").get("NY");

...初期化プロセスを考えると、1つのアイテムを含むリストを返す必要があります。

于 2013-01-11T08:12:18.720 に答える
0

Java では、要素としてList別のものを含むa を使用できます。List

List<List<List<City>>>

クラスCityが都市を保持する場合、内側のリストは 1 つの州のすべての都市を保持し、中間のリストは 1 つの国のすべての州のリストを保持し、外側のリストは国を保持します。

別のアイデアは、国と州ごとに並べ替えられた DB からレコードを取得し、それらを 1 つずつ調べて、新しい国に遭遇するたびに新しいタブを開始し、新しい州に遭遇したときに新しいテーブルを開始することです。

于 2013-01-11T08:07:26.580 に答える