zoukankan      html  css  js  c++  java
  • Java中集合Set的用法

    Set是最简单的存放数据集合,是一个接口,与list有些相似,其继承图如下:

    list的继承图如下:

     

    英文版:

    从继承图可以看出,两者都实现Collection<E>接口,具有Collection<E>的属性和方法

    Set是最简单的一种集合,并且没有重复数据:主要有HashSet和TreeSet两个实现类:

         HashSet : HashSet类按照哈希算法来存取集合中的对象,存取速度比较快,
        TreeSet   : TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。

    1.HashSet类

    •  它不允许出现重复元素;
    • 不保证和政集合中元素的顺序
    • 允许包含值为null的元素,但最多只能有一个null元素。

    范例:

     1 import java.util.Date;
     2 import java.util.HashSet;
     3 import java.util.Iterator;
     4 
     5 public class HelloWord {
     6     public static void main(String[] args) {
     7         HashSet<Object> h = new HashSet<Object>();
     8         h.add("1st");
     9         h.add("2nd");
    10         h.add(new Integer(3));
    11         h.add(new Double(4.0));
    12         h.add("2nd"); // 重复元素,未被添加
    13         h.add(new Integer(3)); // 重复元素,未被添加
    14         h.add(new Date());
    15         System.out.println("开始:size=" + h.size());
    16         Iterator<Object> it = h.iterator();
    17         while (it.hasNext()) {
    18             Object o = it.next();
    19             System.out.println(o);
    20         }
    21 
    22         h.remove("2nd");
    23         System.out.println("移除元素后:size=" + h.size());
    24         System.out.println(h);
    25     }
    26 
    27 }

    【运行结果】:
    开始:size=5
    2nd
    3
    1st
    4.0
    Sun Sep 13 17:42:15 CST 2015
    移除元素后:size=4
    [3, 1st, 4.0, Sun Sep 13 17:42:15 CST 2015]

    2.TreeSet类

        TreeSet描述的是Set的一种变体——可以实现排序等功能的集合,它在讲对象元素添加到集合中时会自动按照某种比较规则将其插入到有序的对象序列中,并保证该集合元素组成的读取时刻按照“升序”排列。

     1 package hello;
     2 
     3 import java.util.Iterator;
     4 import java.util.TreeSet;
     5 
     6 public class HelloWord {
     7     public static void main(String[] args) {
     8         TreeSet<String> ts=new TreeSet<String>();
     9            ts.add("orange");
    10            ts.add("apple");
    11            ts.add("banana");
    12            ts.add("grape");
    13            ts.add("grand");
    14      
    15            Iterator<String> it=ts.iterator();
    16            while(it.hasNext())
    17            {
    18                String fruit=it.next();
    19                System.out.println(fruit);
    20            }
    21     }
    22 
    23 }

    【运行结果】:

    apple
    banana
    grand
    grape
    orange

    说明:按首字母排序,首字母相同按下一个字母排序,依此类推

     

  • 相关阅读:
    闭包的最准确的解释-待翻译
    undefined 和 null 的异同
    Javascript深度克隆一个对象
    产品培训的经验
    JavaScript库开发者们的规则
    IOS ——UI篇—— UITableView的常用属性及代理方法的用法总结
    IOS ——UI篇—— 自定义UITableViewCell的方法
    IOS ——UI篇—— UIScrollView的用法总结
    使用UIKit中的tag属性要注意的
    IOS ——UI篇——UITabBarController的基本用法
  • 原文地址:https://www.cnblogs.com/xiaobijia/p/4805214.html
Copyright © 2011-2022 走看看