【Java】常见的Set类型,HashSet、TreeSet、LinkedHashSet
2016-05-11 23:17
537 查看
HashSet,锋芒毕露,我们最常用到。其他两个,我们较少用到,今天,我们看看他们的区别。
View Code
HashSet,能够快速查找键值。
看它的实现可知,依赖于HashMap的实现。打印的日志:
如果修改为使用TreeSet,日志是这样的。
TreeSet底层维护的是一个红黑树,维护有序的序列,元素必须实现Comparable接口。
而使用LinkedTreeSet,日志又是这样的。
保持插入的次序,又支持快速查找键值。
LinkedTreeSet是继承TreeSet构造方法,而TreeSet的构造方法里使用了LinkedHashMap,可见原理隐藏在LinkedHashMap里面。
import java.util.HashSet; import java.util.Set; public class HashSetTester { public static void main(String[] args) { Set<Integer> set = new HashSet<Integer>(); set.add(15); set.add(31); set.add(12); set.add(123); set.add(42); for (Integer i : set) { System.out.println(i); } } }
View Code
HashSet,能够快速查找键值。
看它的实现可知,依赖于HashMap的实现。打印的日志:
42 123 12 31 15
如果修改为使用TreeSet,日志是这样的。
TreeSet底层维护的是一个红黑树,维护有序的序列,元素必须实现Comparable接口。
12 15 31 42 123
而使用LinkedTreeSet,日志又是这样的。
保持插入的次序,又支持快速查找键值。
LinkedTreeSet是继承TreeSet构造方法,而TreeSet的构造方法里使用了LinkedHashMap,可见原理隐藏在LinkedHashMap里面。
15 31 12 123 42
相关文章推荐
- java 死锁两种实现
- Java反射总结(二)
- 笔记Java基础
- java WEB 表单 验证码问题与解决
- Spring学习之路(一)—环境配置
- orm.hibernate3.HibernateSystemException: Unknown entity: java.util.ArrayList;
- Spring注入:配置与注解
- java的四种引用,强弱软虚,用到的场景
- Java之------单机版书店管理系统(设计思想和设计模式系列八)登录模块
- IT十八掌掌第七天课程总结
- jdk
- RxJava之过滤操作符
- IT十八掌作业_java基础第七天_匿名内部类、异常、包和jar
- Java HashSet和LinkedHashSet的用法
- Java HashSet和LinkedHashSet的用法
- spring mvc Cannot locate BeanDefinitionParser for element spring-servlet.xml
- Eclipse 中 CVS show histoy 显示空白
- Java基础-OOP特性之封装、继承、多态、抽象
- 毕设系列—服务端:Java-SSH框架(一)
- Java 接口和抽象类区别