A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hbk000 中级黑马   /  2015-4-10 13:05  /  1546 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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}

5 个回复

倒序浏览
Set集合是无序的,输出顺序与对象存储顺序无关,与对象的hash值有关
回复 使用道具 举报
因为set的存储顺序和取出顺序是不一致的。
回复 使用道具 举报
Set集合中的数据是没有顺序的且数据不能重复    而List中的数据是有顺序的且能够数据重复
回复 使用道具 举报
hashset的存储顺序是根据算法得出的hash值进行存储的,具体你可以去看一下数据结构的hash算法.
回复 使用道具 举报
这跟内部默认的hash值有关联的,都是按照其各自的hash值进行排序的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马