HashSet、LinkedHashSet、TreeSet使用区别

HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放;

TreeSet:提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。

LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代;

//HashSet
HashSet<String>  strHashSet = new HashSet<String>();
strHashSet.add("d");
strHashSet.add("a");
strHashSet.add("u");
strHashSet.add("e");
strHashSet.add("s");
strHashSet.add("q");
strHashSet.add("p");
strHashSet.add("r");
System.out.println("HashSet --------" + strHashSet);
//TreeSet
TreeSet<String>  strTreeSet = new TreeSet<String>();
strTreeSet.add("d");
strTreeSet.add("a");
strTreeSet.add("u");
strTreeSet.add("e");
strTreeSet.add("s");
strTreeSet.add("q");
strTreeSet.add("p");
strTreeSet.add("r");
System.out.println("TreeSet --------" + strTreeSet);
//LinkedHashSet
LinkedHashSet<String>  strLinkedHashSet = new LinkedHashSet<String>();
strLinkedHashSet.add("d");
strLinkedHashSet.add("a");
strLinkedHashSet.add("u");
strLinkedHashSet.add("e");
strLinkedHashSet.add("s");
strLinkedHashSet.add("q");
strLinkedHashSet.add("p");
strLinkedHashSet.add("r");
System.out.println("LinkedHashSet --" + strLinkedHashSet);

输出

HashSet --------[p, a, q, r, s, d, u, e]
TreeSet --------[a, d, e, p, q, r, s, u]
LinkedHashSet --[d, a, u, e, s, q, p, r]

HashSet输出是和原来的添加的顺序是不一致的,因为其保存的位置是根据其哈希值来确定.
TreeSet使用红黑树结构进行保存,因此其内部是有序的,输出也是有序的.
LinkedHashSet使用链表来保存,因此输出时和插入时的顺序是一致的.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值