我有一张如下图所示的地图,其中有一个键,值为List
:
Map<String, List<String> newdatamap = new HashMap<>();
map.put ("payerName", Arrays.asList("wpn", "wpfnb", "dgeft", "xbthy"));
map.put ("fixedRate", Arrays.asList("dd", "ww", "trrty", "httyure"))
我想在上一张地图上添加另一张地图,以便有一个键,其值将是上面的地图。这是正确的数据结构,我们如何实现它?
我想要下面显示的内容
Key Value
B1 payerName ----> "wpn", "wpfnb", "dgeft", "xbthy"
fixedRate ----->"dd", "ww", "trrty", "httyure"
B2 payerName ----> "SSSwpn", "wpfSSSnb", "GGGdgeft", "xbtYYYYhy"
fixedRate ----->"WWdd", "wTTYw", "YYYYtrrty", "IIIhttyure"
如上所示,只有一个新的密钥被引入到地图中,其值是前一个地图。 Map
数据结构是正确的方法,还是其他任何数据结构都能更好地工作?
请各位建议在答案中建议guava库也将支持JDK 1.5
答案 0 :(得分:1)
从读取之类的内容......你需要一个Map<String, Map<String, List<String>>>
。
宣布......很简单。
Map<String, Map<String, List<String>>> values = new HashMap<>();
...但索引到以下内容并不愉快:
// get B2's fixed rates
values.get("B2").get("fixedRate");
或许您应该考虑使用Guava's Table
课程。它将为您提供清晰的坐标,以确定您想要获得的对象,并保留您的整体结构。
final Table<String, String, List<String>> values = HashBasedTable.create();
values.put("B1", "payerName", Lists.newArrayList("wpn", "wpfnb", "dgeft", "xbthy"));
System.out.println(values.get("B1", "payerName")); // prints the list