zoukankan      html  css  js  c++  java
  • java中set接口的用法

    java中的set接口有如下的特点:

    • 不允许出现重复元素;
    • 集合中的元素位置无顺序;
    • 有且只有一个值为null的元素。

    因为java中的set接口模仿了数学上的set抽象,所以,对应的数学上set的特性为:

    • 互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次。
    • 无序性:一个集合中,每个元素的地位都是相同的,元素之间是无序的。集合上可以定义序关系,定义了序关系后,元素之间就可以按照序关系排序。但就集合本身的特性而言,元素之间没有必然的序。
    • 空集的性质:空集是一切集合的子集
       1 package test_set;
       2 
       3 import java.util.ArrayList;
       4 import java.util.HashSet;
       5 import java.util.Iterator;
       6 import java.util.List;
       7 import java.util.Set;
       8 
       9 /**
      10  * @author zaofengchen
      11  * @time 2014年7月21日
      12  */
      13 public class Test_set {
      14 
      15     private static Set<String> sets1 = new HashSet<>();
      16     public static void main(String[] args) {
      17         
      18         save_to_set();
      19 //        save_to_set_from_list();
      20         bianli();
      21 //        binali_sets1_iterator();
      22 //        System.out.print(remove_a_element());
      23     }
      24 
      25     /**
      26      * 往set里面存值
      27      * 方法save_to_set往set里面存进去了两个1,两个3,一个2,一个null,
      28      * 但是遍历的结果为null,1,2,3;且显示顺序与存储顺序无关,
      29      * 体现了集合的互异性、无序性的特性。
      30      * 有因为set里面可以存储空值,且因为set有互异性,所以只能存储一个空值。
      31      */
      32     public static void save_to_set(){
      33         sets1.add("1");
      34         sets1.add("");
      35         sets1.add("3");
      36         sets1.add("1");
      37         sets1.add("3");
      38         sets1.add("2");
      39     }
      40     /**
      41      * 遍历一个set
      42      */
      43     public static void bianli(){
      44         for(String s1 : sets1){
      45             System.out.print(s1+"\t");
      46         }
      47     }
      48     
      49     /**
      50      * 把一个list存到一个set中
      51      */
      52     public static void save_to_set_from_list(){
      53         List<String> lists = new ArrayList<>();
      54         lists.add("1");
      55         lists.add("2");
      56         lists.add("3");
      57         lists.add("4");
      58         lists.add("5");
      59         lists.add("3");
      60         
      61         sets1.addAll(lists);
      62     }
      63 
      64     /**
      65      * 从set中删除一个元素
      66      */
      67     public static boolean remove_a_element(){
      68         return sets1.remove("1");
      69     }
      70     /**
      71      * 使用Iterator遍历set
      72      */
      73     public static void binali_sets1_iterator(){
      74         Iterator<String> ite = sets1.iterator();
      75         while(ite.hasNext()){
      76             System.out.print(ite.next()+"\t");
      77         }
      78     }
      79
     1 package test_set;
     2 
     3 import java.util.ArrayList;
     4 import java.util.HashSet;
     5 import java.util.Iterator;
     6 import java.util.List;
     7 import java.util.Set;
     8 
     9 /**
    10  * @author Qiaofengbo
    11  * @time 2014年7月21日
    12  */
    13 public class Test_set {
    14 
    15     private static Set<String> sets1 = new HashSet<>();
    16     public static void main(String[] args) {
    17         
    18         save_to_set();
    19 //        save_to_set_from_list();
    20         bianli();
    21 //        binali_sets1_iterator();
    22     }
    23 
    24     /**
    25      * 往set里面存值
    26      */
    27     public static void save_to_set(){
    28         sets1.add("1");
    29         sets1.add("");
    30         sets1.add("3");
    31         sets1.add("1");
    32         sets1.add("3");
    33         sets1.add("2");
    34     }
    35     /**
    36      * 遍历一个set
    37      */
    38     public static void bianli(){
    39         for(String s1 : sets1){
    40             System.out.print(s1+"\t");
    41         }
    42     }
    43     
    44     /**
    45      * 把一个list存到一个set中
    46      */
    47     public static void save_to_set_from_list(){
    48         List<String> lists = new ArrayList<>();
    49         lists.add("1");
    50         lists.add("2");
    51         lists.add("3");
    52         lists.add("4");
    53         lists.add("5");
    54         lists.add("3");
    55         
    56         sets1.addAll(lists);
    57     }
    58 
    59     /**
    60      * 使用Iterator遍历set
    61      */
    62     public static void binali_sets1_iterator(){
    63         Iterator<String> ite = sets1.iterator();
    64         while(ite.hasNext()){
    65             System.out.print(ite.next()+"\t");
    66         }
    67     }
    68 }

    set为继承自collection接口的接口,set里存储的值的类型通过set<object>泛型来声明;存储值时调用HashSet类的add方法,删除时调用用remove方法。

    save_to_set方法往set里面存进去了两个1,两个3,一个2,一个null,但是遍历的结果为null,1,2,3;且显示顺序与存储顺序无关,体现了集合的互异性、无序性的特性。因为set里面可以存储空值,且因为set有互异性,所以只能存储一个空值。
    save_to_set_from_list方法作用是调用addAll方法往set里面存储值,参数为一个collection容器,比如list容器,此方法可用于从list重筛选出重复的元素。
    binali_sets1_iterator方法遍历set除了用for循环外,还可以使用Hashset类中的iterator方法,返回一个装有set容器无序元素的迭代器,然后再调用迭代器iterator方法hashnext和next来遍历元素。

  • 相关阅读:
    如何在SQL Server 2005 中为安装程序增加计数器注册表项值
    C++ 基础小知识学习[1]
    同时支持火狐和IE的输入框内容改变事件
    3D圆角
    Jquery选择器测试
    asp.net 中的 MD5加密和DES加解密算法类
    简单页面控件赋值
    继承IHttpHandler接口实现给网站图片添加水印
    asp.net Ajax
    JQuery操作iframe父页面与子页面的元素与方法
  • 原文地址:https://www.cnblogs.com/TimeStory/p/3858479.html
Copyright © 2011-2022 走看看