1

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

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() + " " );
}
4

3 回答 3

6

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

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

于 2012-07-30T10:33:21.643 回答
1

集合不允许重复。如果您再次添加重复项,例如“一个”,则不会添加。

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

第二个元素没有被添加到 set 中。

添加它时检查是否if(e==null ? e2==null : e.equals(e2))为真,然后只添加元素,Set否则不要。

于 2012-07-30T10:40:43.783 回答
0

TreeSet 是 Set 接口的实现

并且 Set 总是只包含唯一的元素

因此,即使您放置了 5 个元素,TreeSet 实际上只包含 4 个,因为“一个”重复了两次。

于 2012-07-30T10:38:37.350 回答