【JAVA基础】HashSet、LinkedHashSet、TreeSet使用区别
2015-12-10 15:44
459 查看
【JAVA基础】HashSet、LinkedHashSet、TreeSet使用区别
HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放;
LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代;
TreeSet:提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。
用例代码:
输出效果:
HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放;
LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代;
TreeSet:提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。
用例代码:
package com.test; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.TreeSet; /** * @description 几个set的比较 * HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放; * LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代; * TreeSet:提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。 * @author Zhou-Jingxian * */ public class SetDemo { public static void main(String[] args) { HashSet<String> hs = new HashSet<String>(); hs.add("B"); hs.add("A"); hs.add("D"); hs.add("E"); hs.add("C"); hs.add("F"); System.out.println("HashSet 顺序:\n"+hs); LinkedHashSet<String> lhs = new LinkedHashSet<String>(); lhs.add("B"); lhs.add("A"); lhs.add("D"); lhs.add("E"); lhs.add("C"); lhs.add("F"); System.out.println("LinkedHashSet 顺序:\n"+lhs); TreeSet<String> ts = new TreeSet<String>(); ts.add("B"); ts.add("A"); ts.add("D"); ts.add("E"); ts.add("C"); ts.add("F"); System.out.println("TreeSet 顺序:\n"+ts); } }
输出效果:
HashSet 顺序: [D, E, F, A, B, C] LinkedHashSet 顺序: [B, A, D, E, C, F] TreeSet 顺序: [A, B, C, D, E, F]
相关文章推荐
- Spring MVC配置Freemarker全局变量,实现应用全路径
- Java:单例模式的七种写法<转>
- spring+mybatis+atomikos 实现JTA事务
- android转eclipse
- java Exception
- JavaEE_Mybatis_SpringMVC SpringMVC日期类型转换问题三大处理方法归纳
- RxJava学习笔记
- java中volatile关键字的含义<转>
- JAVA的Random类(转)
- java.util.concurrent.ConcurrentSkipListSet 基于跳跃链表的并发set
- JAVA配置文件之web.xml
- Springmvc+uploadify实现文件上传
- java创建对象方法列表
- ubuntu上 使用eclipse搭建stm32开发环境遇到的问题
- SpringMVC返回json数据的配置方式
- Java中的异常、断言、日志 log4j
- spring含参数 环绕通知demo
- java—连接池 C3p0 DBCP
- 谈论高并发(二十二)解决java.util.concurrent各种组件(四) 深入了解AQS(二)
- JavaEE_Mybatis_SpringMVC_自定义的参数绑定,页面的日期类型传递到数据库中datetime