• 【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接口的实现,对象以升序顺序存储,访问和遍历的时间很快。

  • 相关阅读:
    git ——visual studio code 工具之 Git Graph & git clone & git checkout
    docker中添加redis & 在程序中应用
    Configuring Redis for ASP.NET Core Session Store(转载)
    Configuring Redis Session State In ASP.NET Core(转载)
    http请求端口占用异常——处理思路
    在pods中添加有关httpclient的 压力测试 & 监控
    Singleton HttpClient? Beware of this serious behaviour and how to fix it
    HttpClient 之 CLOSE_WAIT
    HttpClient的使用
    HttpClient连接池之CLOSE_WAIT
  • 原文地址:https://www.cnblogs.com/zhengbin/p/4986200.html
Copyright © 2020-2023  润新知