1

出力が 4 1 3 2 であることはわかっています。誰でも方法を説明できますか?アイテムは 5 つあるのに 4 つしか印刷されていないためです。

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

セットは重複を許可しません。「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

2 番目の要素がセットに追加されませんでした。

それを追加している間、チェックif(e==null ? e2==null : e.equals(e2))はtrueであり、要素を追加するだけで、Setそうでない場合は追加しません。

于 2012-07-30T10:40:43.783 に答える
0

TreeSet は Set インターフェイスの実装です

Set には常に一意の要素のみが含まれます

したがって、5 つの要素を配置しても、「1」が 2 回繰り返されるため、TreeSet には実際には 4 つしか含まれません。

于 2012-07-30T10:38:37.350 に答える