2012-01-05 73 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