2012-01-05 120 views
0

我想將一個Treemap中的鍵值添加到一個String [],但是我做錯了什麼,我得到這個:「[Ljava.lang.String; @ 281ec58a」。誰能幫忙? 在此先感謝。TreeMap的鍵值爲字符串數組

這是我正在使用的代碼:

TreeMap t = new TreeMap(hm); //hm is a Hashmap 
    t = (TreeMap) sortByValues(t); // i sort the values with this method 
    String [] tempa = (String[]) t.keySet().toArray(new String[t.size()]); 
+0

你可以顯示你的'sortByValues'嗎?我敢打賭這是它的事。 – dasblinkenlight 2012-01-05 15:09:33

+0

你確定sortByValues(t)沒有添加它作爲對象嗎?如果沒有sortbyvalues(),我會得到什麼是關鍵值。 – kosa 2012-01-05 15:12:12

+0

sortByValues對樹形圖進行排序。 hashmap是HashMap 2012-01-05 15:16:32

回答

2
"[Ljava.lang.String;@281ec58a"

只是陣列的打印方式(即轉換爲字符串)由缺省值。如果您遍歷數組的內容,並依次打印每個元素,則可能會發現所有內容都如預期的那樣。

+0

謝謝。傻我。 – 2012-01-05 15:26:41

2

由於您使用的是原始類型,因此完全不清楚HashMapTreeMap中的值。如果您使用泛型,您的代碼對於我們,您和編譯器會更清晰。

但是,它可能是一切正常 - 它只是通過調用toString來將字符串數組轉換爲字符串。 (你還沒有告訴我們,你的意思是「我拿到這本」 - 在哪裏?)

嘗試使用:

String output = Arrays.toString(tempa); 

,看看有什麼陣列內的值。

+0

謝謝喬恩,我現在可以看到值,但我需要使用String []。我想說tempa [0]是「blah」(一個字符串)或「@ $#$#%^」? – 2012-01-05 15:21:30

+0

@emptyset:這將是「等等」 - 至少我期望它是。很難告訴你所提供的有限信息是怎麼回事 - 一個簡短但完整的程序真的會有所幫助。請閱讀http://tinyurl.com/so-hints – 2012-01-05 15:25:18

+0

好吧,我只是愚蠢的。一切都好,我只是試圖打印字符串[]。 – 2012-01-05 15:30:01