我有这个Ruby结构:
COUNTRIES = {
'AF' => { :country => 'Afghanistan', :alpha => 'AFG', :number => '004' },
'AT' => { :country => 'Austria', :alpha => 'AUT', :number => '040' }
}
我可以使用哪种数据结构来构成相同的结构并根据所需的键找到合适的值?我使用Gualava尝试过此操作:
Table<String, String, Integer> table = HashBasedTable.create();
table.put("Austria", "AUT", 040);
但是我如何映射主键AT
?也许在Table中使用Hashmap?但是然后我如何使用一些内部键从Hashmap获取值>
您可以编写自己的课程。 (也有构造函数+ Getter / Setter)
public class Country {
private String country;
private String alpha;
private String number;
}
要存储我们班级的对象,可以使用地图。
Map<String, Country> table = new HashMap<>();
table.put("AF", new Country("Afghanistan", "AFG", "004");
table.put("AT", new Country("Austria", "AUT", "040");
用Java编写的惯用方式如下:
public class Country {
private final String country;
private final String threeLetterCode;
private final String number;
// constructor and getters
}
Map<String, Country> COUNTRIES = new HashMap<>();
COUNTRIES.put("AT", new Country("Austria", "AUT", "040");
// etcetera
我个人将2个字母代码作为Country
的额外字段包括在内:
可以使用Map<String, Map<String, String>>
来实现,但是它更麻烦,效率更低且更脆弱。