zoukankan      html  css  js  c++  java
  • HashSet Integer输出有序,String输出无序

    1. 背景
    自己在测试HashSet时,发现其输出Integer是有序的。
    2. 测试
    public static void hashSetObjectTest(){


    Set<Integer> set = new HashSet<Integer>();

     

    set.add(6);

        set.add(3);

        set.add(2);

        set.add(1);

        set.add(4);  

        set.add(5);

        //set.add(100);

        //set.add(130);

        //set.add(22);

         

        System.out.println("-------hashset 输出有序结果---------");  

         

        for(Integer value : set){  

                System.out.print(value+" ");  

        }

         

        System.out.println();  

    }



    3. 结果
    -------hashset 输出有序结果---------

    1 2 3 4 5 6



    4. 分析
    这是一种假象,数据少可能这样,但是数据多了,就无序了。
    4.1 测试
    public static void hashSetObjectTest(){
            
    <span style="white-space:pre">    </span>     Set<Integer> set = new HashSet<Integer>();
            
             set.add(6);
             set.add(3);
             set.add(2);
             set.add(1);
             set.add(4);  
             set.add(5);
             set.add(100);
             set.add(130);
             set.add(22);
             
             System.out.println("-------hashset 输出有序结果---------");  
             
             for(Integer value : set){  
                    System.out.print(value+" ");  
             }
             
             System.out.println();  
        }
    4.2 结果
    -------hashset 输出有序结果---------
    1 100 2 3 4 5 6 22 130

    所以测试时,最好多测一点数据。
    4.3 java api说明
    This class implements the Set interface, backed by a hash table (actually a HashMap instance). It makes no guarantees as to the iteration order of the set; in particular, it does not guarantee that the order will remain constant over time. This class permits the null element.

    该类实现了Set接口,通过hash table实现。HashSet的迭代器在输出时“不保证有序”,但也不是“保证无序”。也就是说,输出时有序也是允许的,但是你的程序不应该依赖这一点。

  • 相关阅读:
    2020寒假 学习进度笔记4:spark使用1
    2020寒假 学习进度笔记3:Spark安装
    2020寒假 学习进度笔记2:Scala学习
    2020寒假 学习进度笔记1:Scala安装(Windows + Lunux)
    测试试卷—数据清洗
    实验6:Mapreduce实例——WordCount
    个人课程总结
    如何打jar包
    初探性能优化——2个月到4小时的性能提升(copy)推荐阅读
    《阿里巴巴Java工作手册》学习笔记
  • 原文地址:https://www.cnblogs.com/zhuyeshen/p/12081371.html
Copyright © 2011-2022 走看看