任何人都可以解释输出吗?

时间:2012-07-30 10:31:17

标签: java

我知道输出是四一三二。谁能解释一下怎么样?由于有五个项目,但只打印了四个。

TreeSet map = new TreeSet();

map.add("one");
map.add("two");
map.add("three");
map.add("four");
map.add("one");
Iterator it = map.iterator();
while (it.hasNext() ) 
{
    System.out.print( it.next() + " " );
}

3 个答案:

答案 0 :(得分:6)

TreeSet不允许重复输入。 当它被访问时,它将以自然顺序(按字母顺序)返回元素。

参见: http://docs.oracle.com/javase/6/docs/api/java/util/TreeSet.html

答案 1 :(得分:1)

Set's不允许重复。再次添加重复内容,如“一个”,它没有被添加。

TreeSet map = new TreeSet();

    System.out.println(map.add("one"));
    map.add("two");
    map.add("three");
    map.add("four");
    System.out.println(map.add("one"));

    Iterator it = map.iterator();
    while (it.hasNext() )
    {
        System.out.print( it.next() + " " );
    }

<强>结果:

true
false

第二个元素未添加到集合中。

添加支票时if(e==null ? e2==null : e.equals(e2))为真,那么只会将元素添加到Set,否则不会。

答案 2 :(得分:0)

TreeSet是Set Interface的实现

并且Set始终只包含唯一元素

所以即使你已经放了5个元素,TreeSet实际上只包含4个,因为“one”是 重复两次。