从Object变量获取TreeSet对象

时间:2013-11-27 06:49:54

标签: java object treeset

我有一个值为[0,2,4,5,9]的Object val,实际上这些值是从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对象,以便我可以迭代值

4 个答案:

答案 0 :(得分:1)

您可以以JSONArray的形式将树集值发送回客户端。我建议您查看org.json包,以便轻松地进行这些客户端和服务器交互。

注意: JSON是轻量级数据交换格式而不是xml 。最新的浏览器支持json作为defacult标准。如果你想进一步想要基于字符串的值,你必须使用javascript函数来分割值并使用它们

答案 1 :(得分:0)

  

如何将对象值[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));

答案 2 :(得分:0)

例如:您在下面的变量

中有TreeSet的String值
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.

答案 3 :(得分:0)

由于课程 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();
}

当您尝试直接打印TreeSet时,这就是为什么你会得到像 [0,2,4,5,9] 这样的字符串。

相反,如果你有 [0,2,4,5,9] 之类的字符串,

您可以删除字符,包括[]。然后使用String.split(",")方法将值放入字符串数组中。

然后使用new TreeSet(Arrays.asList(stringArray));将值转换为TreeSet对象。