HashSet: 内部使用hashMap存储
HashSet: 加入时无序,输出也是无序,并且是线程不同步。
需要实现Collections.synchronizedSet(new HashSet(...))来实现线程同步:
LinkedHashSet:按照加入的顺序迭代;线程不同步。
package ray.com;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import ray.tools.Print;
public class TestSet {
public static void main(String[] args) {
System.out.println("hashSet-----------------------");
TestHashSet();
System.out.println("linkedHashSet----------------");
TestLinkHashSet();
}
// Linked:有序存储
private static void TestLinkHashSet() {
Set<Integer> set = new LinkedHashSet<Integer>();
for (int i = 0; i <= 10; i++) {
set.add(i);
}
Print.PrintSet(set);
}
// 无序存储
private static void TestHashSet() {
Set<String> set = new HashSet<String>();
set.add("1");
set.add("11");
set.add("1111");
set.add("11111");
Print.PrintSet(set);
}
}
hashSet-----------------------
1
1111
11
11111
linkedHashSet----------------
0
1
2
3
4
5
6
7
8
9
10