黑马程序员技术交流社区

标题: 关于HashSet [打印本页]

作者: hbk000    时间: 2015-4-10 13:05
标题: 关于HashSet
Set set = new HashSet();
                set.add("2");
                set.add(3);
                set.add("1");
                System.out.println(set);
上面代码的输出结果为{2,1,3},请问为何会得出这样的顺序。当第三行的set.add(3)改成set.add("3")时,结果变为{3,2,1}

作者: hhqnmlgb    时间: 2015-4-10 13:10
Set集合是无序的,输出顺序与对象存储顺序无关,与对象的hash值有关
作者: P李勇    时间: 2015-4-10 13:19
因为set的存储顺序和取出顺序是不一致的。
作者: Advances    时间: 2015-4-10 13:37
Set集合中的数据是没有顺序的且数据不能重复    而List中的数据是有顺序的且能够数据重复
作者: 小栀子    时间: 2015-4-10 14:17
hashset的存储顺序是根据算法得出的hash值进行存储的,具体你可以去看一下数据结构的hash算法.
作者: wkz_crystal    时间: 2015-4-10 14:21
这跟内部默认的hash值有关联的,都是按照其各自的hash值进行排序的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2