• Java-集合总结之Collection和Map--Set(2)


    Set接口

      Collection的另一个子接口为Set,Set集合现在所拥有的方法都是从Collection哪儿继承的,它本身并没有对其功能扩充。

      Set接口存入元素的规则与List刚好相反,Set存入元素是无序的,且不会出现重复值

      Set接口有两个实现类,分别是HashSet和TreeSet

    实现类HashSet

      HashSet是接口Set的一个实现类,它具有存储元素无序和不可重复的特点

      HashSet存入元素的原理:调用对应对象的hashCode()方法来获取对象的哈希值,然后根据对应的哈希值来确定元素在集合中的存取位置,接下来再调用该对象的equals()方法来确定元素的存储不会出现重复的值。

      HashSet具有良好的存取和查找性能。

      HashSet集合的使用与遍历:

    import java.util.HashSet;
    import java.util.Iterator;
    /*
     * 定义一个测试类
     * 
     */
    public class Test {
    
        public static void main(String[] args) {
            //创建HashSet集合对象
            HashSet set = new HashSet();
            //向该集合中添加元素
            set.add("jack");
            set.add("baobao");
            set.add("lucy");
            set.add("小黑");
            //添加重复元素
            set.add("小黑");
            
            //获取Iterator对象
            Iterator it = set.iterator(); 
            while(it.hasNext()){//通过while循环判断集合中是否还有元素
                Object obj = it.next();//通过迭代器的next()方法获取元素
                System.out.println(obj);
                
            }
        }
    }

      输出结果:无序且不重复

       一般情况下,在定义类需要存入HashSet集合的时候,都需要重写hashCode()方法,和equals方法,否则会因为方法无效判断而导致存入HashSet集合的数据出现重复

    实现类TreeSet

      TreeSet是Set接口的另外一个实现类,它通过自平衡的排序二叉树来存储元素,这样的方式存储方式能够把存进集合中的元素排序。

      TreeSet集合存入集合的元素是不重复的,元素是有顺序的。

      TreeSet实现与遍历:

    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.TreeSet;
    /*
     * 定义一个测试类
     * 
     */
    public class Test {
    
        public static void main(String[] args) {
            //创建TreeSet集合对象
            TreeSet set = new TreeSet();
            //向该集合中添加元素
            set.add("jack");
            set.add("lucy");
            set.add("helen");
            //添加重复元素
            set.add("helen");
            
            //获取Iterator对象
            Iterator it = set.iterator(); 
            while(it.hasNext()){//通过while循环判断集合中是否还有元素
                Object obj = it.next();//通过迭代器的next()方法获取元素
                System.out.println(obj);
                
            }
        }
    }

      返回结果:无重复值,有序

    更多Set学习,可深挖推荐

     https://www.cnblogs.com/IT-CPC/p/10904074.html

  • 相关阅读:
    Oracle ROWID格式及rdba
    Solaris10上配置log server
    Powerpath的IO路径工作模式
    hagui启动时报警VRTSjre15: not found
    stty设置终端参数
    Jumpstart安装报错:Warning: Could not find matching rule in rules.ok
    解决xmanager无法连接Solaris10的问题
    Solaris10下syslogng安装配置
    VS2005 常用的快捷键
    物理路径和虚拟路径 的访问
  • 原文地址:https://www.cnblogs.com/momo-nancy/p/15490642.html
Copyright © 2020-2023  润新知