私はアドレスフォームのテストを書いています。したがって、私は有効なデータが必要です。Javaの適切なコンテナ/データ構造体
私の最初のアプローチは、このデータでHashMap<String, String>
を返すメソッドです。 (すなわち、m.put("city, "New York")
)。
私の場合、これが適切なデータ構造であるかどうかはわかりません。メソッド内でデータを返すことができるように、データを保持するコンテナだけが必要です。属性の数と名前は固定されているため、実行中は変更されません。だから私は本当にマップに要素を動的に追加したり削除したりする機能は必要ありません。
そのため、AddressData
などのクラスを実装することを検討します。 AddressData
-Objectsを作成することによって、必要なデータをクラス属性に割り当てることができます。だから私はそれらをパブリックにするか、ゲッタメソッドで取得することができます。
あなたはどう思いますか?他のデータ構造の提案?
彼らは方法私はこれまでのところ、それを実装し:クラスと
public HashMap getValidData(String country){
HashMap<String, String> data = new HashMap<String, String>();
if(country.equals("USA")){
data.put("firstname","John");
data.put("lastname","Green");
data.put("city","New York");
}
else if(country.equals("Germany")){
//add valid german address data
}
return data;
}
実装案:
class AddressData{
private String firstname;
private String lastname;
private String city;
public AddressData(String country){
if(country.equals("USA")){
firstname="John";
lastname="Green";
city="New York";
}
else if(country.equals("Germany")){
//add valid german address data
}
}
public String getFirstname(){ return firstname; }
// other getters
}
ハッシュマップでは、すべてのキーが一意である必要があります。 – SkrewEverything
これは正しいです。私の場合は問題ありません。キーはAddressDataカテゴリ、すなわちファーストネーム、ラストネーム、都市などです。私は1つのデータセットに2つの都市を必要としません。 – MrBrightside
今までコードで何をしていたのかを親切に伝えてください。それを修正して説明することができます。あなたが理解できないものをデザインする方法はたくさんあります。 – SkrewEverything