集合:
	  Java主要支持三种:
		  1.规则集(Set)
			    用于存储一组不重复的元素
		  2.线性表(List)
			    用于存储一个由元素构成的有序集合
		  3.队列(Queue)
			    同与数据结构中的队列,存储用先进先出的方式处理对象
	  注:Java集合框架中所有接口和类都存储在java.util包中
Set
		  Set包括:
			  1.散列集 HashSet
			  2.链式散列集	LinkedHashSet
			  3.树型集 TreeSet
		  
HashSet:
			  1.HashSet属于规则集,所以其不允许有重复的元素
			  2.散列集的元素没有特定的顺序
 
1 import java.util.*; 2 public class HashSet_Test { 3 public static void main(String[] args) { 4 Set<String> s1 = new HashSet(); 5 s1.add("Apple"); 6 s1.add("Huawei"); 7 s1.add("samsung"); 8 s1.add("Apple"); 9 System.out.println(s1); 10 HashSet<String>s2 = new HashSet(); 11 s2.add("Apple"); 12 s2.add("Huawei"); 13 s2.add("samsung"); 14 s2.add("Apple"); 15 System.out.println(s2); 16 } 17 }
 
1 [Apple, samsung, Huawei] 2 [Apple, samsung, Huawei]
LinkedHashSet:
			  其用链表的形式实现扩展的HashSet类
				  1.其支持对规则集内的元素排序
				  2.其可以按照元素插入规则集的顺序提取
				  3.属于规则集,其不允许有重复的元素
 
1 package One; 2 import java.util.LinkedHashSet; 3 import java.util.Set; 4 public class LinkedHashSet_Test { 5 public static void main(String[] args) { 6 Set<String> s1 = new LinkedHashSet(); 7 s1.add("Apple"); 8 s1.add("samsung"); 9 s1.add("Huawei"); 10 s1.add("Apple"); 11 System.out.println(s1); 12 } 13 }
 
1 [Apple, samsung, Huawei]
TreeSet:
			  1.提供更多的方法
			  2.可以确保规则集中的元素是有序的
			  3.属于规则集,其不允许有重复的元素
 
1 package One; 2 import java.util.Set; 3 import java.util.TreeSet; 4 public class TreeSet_Test { 5 public static void main(String[] args) { 6 Set<String>s1 = new TreeSet(); 7 s1.add("Apple"); 8 s1.add("samsung"); 9 s1.add("Huawei"); 10 s1.add("Apple"); 11 System.out.println(s1); 12 } 13 }
 
1 [Apple, Huawei, samsung]
总结:
HashSet按Hash函数排序
LinkedHashSet按插入顺序排序
TreeSet按字母顺序排序
     HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放;
     LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代;
     TreeSet:提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。
原文:http://www.cnblogs.com/zhengbin/p/4986200.html