получение объекта TreeSet из переменной Object

У меня есть Object val со значениями [0,2,4,5,9], на самом деле эти значения были созданы из TreeSet, как показано ниже.

TreeSet ts=new TreeSet ();
ts.add(0);
ts.add(2);
ts.add(4);
ts.add(5);
ts.add(9);

System.out.println(ts);

Вывод

[0,2,4,5,9]

я передаю вывод в виде строки с сервера на клиентскую сторону

на стороне клиента я

Object obj="[0,2,4,5,9]";

Может ли кто-нибудь сказать мне, как преобразовать значения объекта [0,2,4,5,9] в объект TreeSet, чтобы я мог повторять значения


person Community    schedule 27.11.2013    source источник
comment
Что вы подразумеваете под клиентской стороной? Если это javascript, такой структуры, как набор деревьев, нет. Но вы можете получить каждое значение путем разделения.   -  person Munesh    schedule 27.11.2013
comment
клиентская сторона андроид   -  person    schedule 27.11.2013


Ответы (4)


Вы можете отправить значение набора деревьев обратно клиенту в виде JSONArray. Я бы порекомендовал вам изучить пакет org.json, чтобы легко выполнять такое взаимодействие клиента и сервера.

Примечание. JSON — это более легкий формат обмена данными, чем xml. Последние браузеры поддерживают json как стандарт по умолчанию. если вы хотите перейти к строковому значению, вам нужно использовать функцию javascript, чтобы разделить значения и использовать их.

person Keerthivasan    schedule 27.11.2013
comment
Формат JSON можно использовать для отправки данных обратно клиенту с сервера. Что-то не так с этим подходом? - person Keerthivasan; 27.11.2013
comment
Я не получил ни одного слова JSON в вопросе OP. - person Masudul; 27.11.2013
comment
@Масуд, да, я понимаю. но OP хочет преобразовать данные в объекте в набор деревьев на стороне клиента - person Keerthivasan; 27.11.2013
comment
я так думаю, поскольку @KeerthiRamanathan сказал, что JSONArray может быть лучшим выбором, чем использование интерфейса Collection ... потому что мы можем отправлять JSONArray с сервера, где данные можно легко повторять на стороне клиента. - person ; 27.11.2013

как преобразовать значения объекта [0,2,4,5,9] в объект TreeSet, чтобы я мог перебирать значения

Ниже приведен способ преобразования значений объекта в TreeSet,

 Object obj="[0,2,4,5,9]";

 String[] arr=obj.toString().substring(1, obj.toString().length()-1).split(",");

 TreeSet ts=new TreeSet(Arrays.asList(arr));
person Masudul    schedule 27.11.2013

Поскольку класс AbstractCollection реализует метод toString(), например,

 /**
 * Returns a string representation of this collection.  The string
 * representation consists of a list of the collection's elements in the
 * order they are returned by its iterator, enclosed in square brackets
 * (<tt>"[]"</tt>).  Adjacent elements are separated by the characters
 * <tt>", "</tt> (comma and space).  Elements are converted to strings as
 * by <tt>String.valueOf(Object)</tt>.<p>
 *
 * This implementation creates an empty string buffer, appends a left
 * square bracket, and iterates over the collection appending the string
 * representation of each element in turn.  After appending each element
 * except the last, the string <tt>", "</tt> is appended.  Finally a right
 * bracket is appended.  A string is obtained from the string buffer, and
 * returned.
 * 
 * @return a string representation of this collection.
 */
public String toString() {
StringBuffer buf = new StringBuffer();
buf.append("[");

    Iterator<E> i = iterator();
    boolean hasNext = i.hasNext();
    while (hasNext) {
        E o = i.next();
        buf.append(o == this ? "(this Collection)" : String.valueOf(o));
        hasNext = i.hasNext();
        if (hasNext)
            buf.append(", ");
    }

buf.append("]");
return buf.toString();
}

Вот почему вы получаете строку типа [0,2,4,5,9], когда пытаетесь напечатать TreeSet напрямую.

Наоборот, если у вас есть строка типа [0,2,4,5,9],

Вы можете удалить символы, включая [ и ]. а затем с помощью метода String.split(",") поместить значения в массив строк.

А затем используйте new TreeSet(Arrays.asList(stringArray)); для преобразования значений в объект TreeSet.

person MouseLearnJava    schedule 27.11.2013

Например: у вас есть строковое значение TreeSet в переменной ниже

var str = "[0,2,4,5,9]";
str =  str.substring(1,str.length-1);

var res = str.split(","); // This gives you a array of the elements.
person Munesh    schedule 27.11.2013