标签:
HashSet,锋芒毕露,我们最常用到。其他两个,我们较少用到,今天,我们看看他们的区别。
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); } } }
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】常见的Set类型,HashSet、TreeSet、LinkedHashSet
标签:
原文地址:http://www.cnblogs.com/nick-huang/p/5484025.html