java中HashSet和LinkedHashSet

来源:互联网 发布:淘宝查询买家退货率 编辑:程序博客网 时间:2024/06/06 00:53
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-----------------------111111111111linkedHashSet----------------012345678910


0 0