List list1  = new ArrayList();
  list1.add("a");
  list1.add("b");
  list1.add("c");
  list1.add("c");
 Set set1 = new TreeSet();
 set1.add(list1);
 Iterator iter =  set1.iterator();
 while(iter.hasNext()){
 System.out.println(iter.next());
 }
这个答案多少?

解决方案 »

  1.   

    第一印象是:a b c验证了一下,结果是:a,b,c,c
      

  2.   

    a,b,c,c
    打印的是list
    没把list的成员装进set是吧整个list装进去了
    不会去重的
      

  3.   

    加个泛型会好理解很多
    List<String> list1 = new ArrayList<String>();
    list1.add("a");
    list1.add("b");
    list1.add("c");
    list1.add("c");
    Set<List> set1 = new TreeSet<List>();
    set1.add(list1);
    Iterator iter = set1.iterator();
    while (iter.hasNext()) {
    System.out.println(iter.next());
    }
      

  4.   

    打印Set1的结果是[[a,b,c,c]]
    list1的结果是[a,b,c,c]说明,set里面存的是一个list1,而不是里面的各个值。
      

  5.   

    是list1里的内容,而不是object的。因为集合类的重写了toString()。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();
        }
      

  6.   

    Set set1 = new TreeSet();
    set1.add(list1); //这样是存一个list
    注意这个和下面的区别
    Set set1 = new TreeSet(list1); //这样是存list里面的元素