Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 维护包含地图的地图_Java - Fatal编程技术网

Java 维护包含地图的地图

Java 维护包含地图的地图,java,Java,我有一个地图,如下图所示,其中有一个键,值的类型为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")) 如上所示,只向

我有一个地图,如下图所示,其中有一个键,值的类型为
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"))
如上所示,只向映射引入了一个新键,其值为上一个映射。
Map
数据结构是正确的方法,还是其他数据结构工作得更好

各位朋友,请按照回答中的建议建议,guava library也将支持JDK 1.5,就像它读起来一样……您需要一个
地图

很容易申报

Map<String, Map<String, List<String>>> values = new HashMap<>();
也许你应该考虑上课。它将为您提供想要获取的对象的清晰坐标,并保留您拥有的整体结构

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
final Table values=HashBasedTable.create();
value.put(“B1”、“payerName”、List.newArrayList(“wpn”、“wpfnb”、“dgeft”、“xbthy”);
System.out.println(values.get(“B1”,“payerName”);//打印列表

地图
?那么,你想要一张
地图
?你的问题到底是什么?有什么问题吗?我的建议是,对于如此复杂的数据结构,您很快就会迷失方向,这几乎可以肯定是缺乏设计和封装的迹象。您可能应该定义类,这些类应该有名称。你可以看到一个国家,包含城市,街道作为地图,但更可读的是将其视为一个国家,包含地图,其中City包含一个列表。这忽略了一个事实,即他试图使用多个映射级别来构建并行数组,而不是使用类来分组相关值。封装它们所需的功能肯定有价值,但我并不反对使用
结构。如果您想提供一个封装了值的解决方案,我会鼓励并支持它。@Makoto的我正在使用JDK 1.5,因此请告知guava library for Table是否支持JDK 1.5
// get B2's fixed rates
values.get("B2").get("fixedRate");
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