我想使用HashMaps<String, V>
,其中值类型V
应该是二维int
数组(int[][]
)。
Map<String,int[][]> map = new HashMap<>();
int[][] a = new int[][]{ {1, 2} };
map.put("test", a);
System.out.println("Test:" + map.containsKey("test")); // Test: true
System.out.println("key ==== " + map.get("test")); // Key === [[I@19a8942
我正在尝试使用一个访问唯一值的键,即一个二维数组,数组的大小是固定的array[1][3]
,这是常量。密钥数量会随着时间而增长,但不会增加数组。例如:
Key1 -> [no1, no2, no3]
key2 -> [no4, no5, no6]
我不是Java方面的专家,但在阅读了一些关于地图的内容之后,我觉得这对我来说效果最好。
答案 0 :(得分:1)
我想访问数组值,现在我收到错误。
不确定你的意思,但你似乎走在了正确的轨道上。
System.out.println(map.get("test")[0][1]);
2
理想情况下,我希望按键排序。
您可以使用TreeMap
,它按照其键的自然顺序排序。
答案 1 :(得分:1)
运行时,您的代码不会产生任何错误。但是,您可能会错误地将java处理数组的字符串表示的方式误解为错误。
当你致电System.out.println("key ==== " + map.get("test"));
时,它确实正确地打印了数组。但是,默认情况下,java奇怪地表达数组,尤其是数组(或2d数组)。您可能希望将其更改为:
//at top of file
import java.util.Arrays;
//deepToString returns a string that expresses nested arrays in a user-friendly format
System.out.println("key ==== " + Arrays.deepToString(map.get("test")));
哪个正确打印
Test:true
key ==== [[1, 2]]