Значения ключа TreeMap в массив String - PullRequest
0 голосов
/ 05 января 2012

Я пытаюсь добавить значения ключа из Treemap в String [], но я делаю что-то не так, и я получаю следующее: "[Ljava.lang.String; @ 281ec58a". Кто-нибудь может помочь? Заранее спасибо.

Это код, который я использую:

    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()]);

Ответы [ 2 ]

2 голосов
/ 05 января 2012

Совершенно неясно, каковы значения в HashMap и TreeMap, потому что вы используете необработанные типы. Ваш код был бы более понятен нам, вам и компилятору, если бы вы использовали дженерики.

Однако вполне может быть, что все в порядке - просто вы конвертируете массив строк в строку где-то, вызывая toString. (Вы не сказали нам, что вы имеете в виду под «я получаю это» - где?)

Попробуйте использовать:

String output = Arrays.toString(tempa);

чтобы увидеть значения в массиве.

2 голосов
/ 05 января 2012

"[Ljava.lang.String;@281ec58a" - это просто способ печати массивов (т. Е. Преобразования в строку) по умолчанию.Если вы перебираете содержимое массива и распечатываете каждый элемент по очереди, вы, вероятно, обнаружите, что все соответствует ожиданиям.

...