HashSet Integer出力秩序、String出力無秩序
2011 ワード
1.背景
自分がHashSetをテストしたとき,その出力Integerは秩序化されていることが分かった.
2.テスト
public static void hashSetObjectTest(){
Set set = new HashSet();
set.add(6);
set.add(3);
set.add(2);
set.add(1);
set.add(4);
set.add(5);
//set.add(100);
//set.add(130);
//set.add(22);
System.out.println(「--------hashset出力秩序結果-------」);
for(Integer value : set){
System.out.print(value+"");
}
System.out.println();
}
3.結果
------hashset出力秩序結果------
1 2 3 4 5 6
4.分析
これは一種の仮象で、データが少ないとそうなる可能性がありますが、データが多くなると、無秩序になります.
4.1テスト
public static void hashSetObjectTest(){
<span style="white-space:pre"> </span> Set<Integer> set = new HashSet<Integer>();
set.add(6);
set.add(3);
set.add(2);
set.add(1);
set.add(4);
set.add(5);
set.add(100);
set.add(130);
set.add(22);
System.out.println("-------hashset ---------");
for(Integer value : set){
System.out.print(value+" ");
}
System.out.println();
}
4.2結果
-------hashset ---------
1 100 2 3 4 5 6 22 130
だからテストの時、最も多くの測定データがあります.
4.3 java api説明
This class implements the Set interface, backed by a hash table (actually a HashMap instance). It makes no guarantees as to the iteration order of the set; in particular, it does not guarantee that the order will remain constant over time. This class permits the null element.
このクラスはSetインタフェースを実現し,hash tableによって実現した.HashSetの反復器は出力時に「秩序を保証しない」が「無秩序を保証する」わけではない.つまり、出力時の秩序も許容されますが、あなたのプログラムはこれに依存するべきではありません.
public static void hashSetObjectTest(){
Set
set.add(6);
set.add(3);
set.add(2);
set.add(1);
set.add(4);
set.add(5);
//set.add(100);
//set.add(130);
//set.add(22);
System.out.println(「--------hashset出力秩序結果-------」);
for(Integer value : set){
System.out.print(value+"");
}
System.out.println();
}
3.結果
------hashset出力秩序結果------
1 2 3 4 5 6
4.分析
これは一種の仮象で、データが少ないとそうなる可能性がありますが、データが多くなると、無秩序になります.
4.1テスト
public static void hashSetObjectTest(){
<span style="white-space:pre"> </span> Set<Integer> set = new HashSet<Integer>();
set.add(6);
set.add(3);
set.add(2);
set.add(1);
set.add(4);
set.add(5);
set.add(100);
set.add(130);
set.add(22);
System.out.println("-------hashset ---------");
for(Integer value : set){
System.out.print(value+" ");
}
System.out.println();
}
4.2結果
-------hashset ---------
1 100 2 3 4 5 6 22 130
だからテストの時、最も多くの測定データがあります.
4.3 java api説明
This class implements the Set interface, backed by a hash table (actually a HashMap instance). It makes no guarantees as to the iteration order of the set; in particular, it does not guarantee that the order will remain constant over time. This class permits the null element.
このクラスはSetインタフェースを実現し,hash tableによって実現した.HashSetの反復器は出力時に「秩序を保証しない」が「無秩序を保証する」わけではない.つまり、出力時の秩序も許容されますが、あなたのプログラムはこれに依存するべきではありません.
これは一種の仮象で、データが少ないとそうなる可能性がありますが、データが多くなると、無秩序になります.
4.1テスト
public static void hashSetObjectTest(){
<span style="white-space:pre"> </span> Set<Integer> set = new HashSet<Integer>();
set.add(6);
set.add(3);
set.add(2);
set.add(1);
set.add(4);
set.add(5);
set.add(100);
set.add(130);
set.add(22);
System.out.println("-------hashset ---------");
for(Integer value : set){
System.out.print(value+" ");
}
System.out.println();
}
4.2結果
-------hashset ---------
1 100 2 3 4 5 6 22 130
だからテストの時、最も多くの測定データがあります.
4.3 java api説明
This class implements the Set interface, backed by a hash table (actually a HashMap instance). It makes no guarantees as to the iteration order of the set; in particular, it does not guarantee that the order will remain constant over time. This class permits the null element.
このクラスはSetインタフェースを実現し,hash tableによって実現した.HashSetの反復器は出力時に「秩序を保証しない」が「無秩序を保証する」わけではない.つまり、出力時の秩序も許容されますが、あなたのプログラムはこれに依存するべきではありません.