首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

java中的hashSet为什么会自动排序的呢?解决方案

2014-01-15 
java中的hashSet为什么会自动排序的呢?import java.util.*class test{public static void main(String ar

java中的hashSet为什么会自动排序的呢?

import java.util.*;
class test{
    public static void main(String args[]) {
        Set<String> set = new HashSet<String>();
        set.add("catepillar");
        set.add("momor");
        set.add("bush");
        set.add("cateprillar");
         
        for(String name:set){
            System.out.println (name + " ");
        }
    }
}


输出:
bush 
catepillar 
momor 
cateprillar 

set是无序的呀,为什么输出会自动排序了呢?请详细说明一下,谢谢。
[解决办法]
hashset的实现依赖hash函数,哈希值(看他们的特点)。多存一些值再看看就明白了。
[解决办法]
set是无序的,当你添加元素进去时,是经过3L所说的hash算法在集合内部进行排序保存的,当然你在取值的时候也不是按你add添加元素的时候出来,具体出来是什么原因,我就不清楚了,我想也应该是hash算法吧。

热点排行