![](/img/trans.png)
[英]JAVA: HashMap<String, ArrayList> - How can I associate the values?
[英]Can I use String[] as HashMap values in Java?
我是Java編程的初學者。 我想創建一個HashMap,其值為String []。
假設我有一個JTable parametersTable
表,希望在每一行中獲取第2、3和4列中的值。 每個三值集構成一個HashMap
值( String[]
)。
HashMap<String, String[]> map = new HashMap<String, String[]>();
String[] row = {"one", "two", "three", "four", "five", "six", "seven","eight","nine","ten","eleven"};
for (int i=0; i<row.length; i++) {
map.put(row[i], new String[] {
(String) parametersTable.getValueAt(i, 2),
(String) parametersTable.getValueAt(i, 3),
(String) parametersTable.getValueAt(i, 4)});
}
System.out.println(map);
上面的代碼輸出:
{nine=[Ljava.lang.String;@187930f1, six=[Ljava.lang.String;@2a8000ab, four=[Ljava.lang.String;@4436b0fd, one=[Ljava.lang.String;@134bc965, seven=[Ljava.lang.String;@42e49d45, eleven=[Ljava.lang.String;@68cb58ea, ten=[Ljava.lang.String;@198bbc56, two=[Ljava.lang.String;@54464ee3, three=[Ljava.lang.String;@32aeff9b, five=[Ljava.lang.String;@90ed2c, eight=[Ljava.lang.String;@443d9864}
為什么輸出有些神秘,而不是我期望的值?
為什么輸出有些神秘,而不是我期望的值?
[Ljava.lang.String;@
是String數組toString()方法的默認表示。
請改用Arrays.toString
方法。
因此,代替System.out.println(map)
來獲取有意義的表示
for(Map.Entry<String, String[]> entry : map.entrySet()) {
System.out.println(entry.getKey() + " -> " + Arrays.toString(entry.getValue()));
}
試試這個方法:)
static void print(HashMap<String, String[]> map) {
StringBuilder builder = new StringBuilder();
for(Map.Entry<String, String[]> e : map.entrySet()) {
builder.append(e.getKey()).append(" -> [");
boolean tmp = false;
for(String s : e.getValue()) {
if(tmp) {
builder.append(" ");
}
tmp = true;
builder.append(s);
}
builder.append("]\n");
}
System.out.println(builder.toString());
}
您得到[Ljava.lang.String;@90ed2c
因為調用了數組的默認方法toString()。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.