java中的hashSet为什么会自动排序的呢?解决方案
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算法吧。