Fork me on GitHub

【Java集合框架】规则集--Set

集合:
  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 }
View Code
1 [Apple, samsung, Huawei]
2 [Apple, samsung, Huawei]
View Code

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 }
View Code
1 [Apple, samsung, Huawei]
View Code

 

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 }
View Code
1 [Apple, Huawei, samsung]
View Code

 

总结:

  HashSet按Hash函数排序

  LinkedHashSet按插入顺序排序

  TreeSet按字母顺序排序


     HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放;
     LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代;
     TreeSet:提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。

posted @ 2015-11-22 17:06  郑斌blog  阅读(558)  评论(0编辑  收藏  举报