私は同じ問題を抱えています。多くの人が、まともな使いやすい連想配列の欠如であるPHPから来ているようです。 私はこのQのように基本的にHashMapを使うことを提案した質問をここで読んだ。Java associative-array連想配列とJava
しかし、上記の解決策は私の問題を解決するとは思わない。私は説明します。
データを保存する250項目(国)のリストがあります。データの長さは定義されていません。つまり、「列」ごとに複数のエントリを保持できます。エントリがない場合もあります。
PHPで私はこれを行うことができます:
$country_data = new array();
$country_data["nl"]["currency"] = "euro";
$country_data["nl"]["languages"] = "Dutch";
...
$country_data["us"]["currency"] = "US dollar";
$country_data["us"]["languages"] = array("English", "Spanish");
だから時々私は時々、配列を格納しないようにしたいです。もちろん、文字列の代わりに1つのエントリだけを持つ配列でもかまいませんが、私はちょうど言っています。
したがって、問題は、配列をHashMapの配列に格納してフェッチする方法です。私は醜いHashMapソリューションに悩まされていることを理解していますが、これで配列を格納する方法がわかりません。単純なものを見落としていると思います。私に基づいた例が素晴らしいでしょう!
UPDATE
私は簡単にすべてを監督し、必要なときに値の数行を変更できるようにする必要があり、この理由ハッシュマップ のハッシュマップのために行くことにしました。これは柔軟性があり、国コードや言語に基づいた国名を簡単に取得できます。必要なときにcountry_data HashMapを取得することも、すべての国名などを取得することもできます。
public class iso_countries {
Map<String, Object> country_data = new HashMap<String, Object>();
Map<String, String> country_name = new HashMap<String, String>();
Map<String, String[]> country_idd = new HashMap<String, String[]>();
Map<String, String[]> country_cid = new HashMap<String, String[]>();
public iso_countries(){
country_name.put("nl", "Netherlands");
country_idd.put("nl", new String[]{"+31"});
country_cid.put("nl", new String[]{"#31#", "*31#"});
setData(country_name, country_cid, country_idd);
// 249 * 4 lines more and later...
}//end method
public void setData(Map country_name, Map country_cid, Map country_idd){
country_data.put("name", country_name);
country_data.put("idd", country_idd);
country_data.put("cid", country_cid);
}//end method
public String getCountryName(String countryCode){
String name = country_name.get(countryCode);
return name;
}//end method
public String[] getCountryIdd(String countryCode){
String prefix[] = country_idd.get(countryCode);
return prefix;
}//end method
public String[] getCountryCid(String countryCode){
String cid[] = country_cid.get(countryCode);
return cid;
}//end method
}//end class
PHPでハッシュマップのような動作が必要な場合や、Javaでコードを実装していますか? –
リストに国コードとインデックスがあるのはなぜですか? '$ country_data [" us "]'は完璧に動作しませんか? –
あなたのPHPコードにコメントするだけでは意味がありません。 '' language''インデックスの値の型は、文字列、配列のように全く違っている可能性があります。好きで、それに固執する。タイプを混在させると、実際にコードが正しくないことが示されます。コードが不安定になります。編集:@ブレンダンロング:はい、あまりにも良い通知です。 – Sk8erPeter