hashset的遍历为何没有按照输入的顺序

allen0228 2013-08-21 10:22:30
直接贴代码
package cc.openhome;

import java.util.*;

public class ForEach {

private static void forEach(Iterable<String> iterable) {
for (Object o : iterable) {
System.out.println(o);
}
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> list = Arrays.asList("Justin", "Monica", "Irene");
//forEach(list);
forEach(new HashSet<String>(list));
//forEach(new ArrayDeque<String>(list));
}

}


输出的结果如下
Monica
Justin
Irene


疑问如下
为何不是

Justin
Monica
Irene

...全文
376 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灯光环 2013-08-22
  • 打赏
  • 举报
回复
HashSet本来就是按照哈希算法散列排序,顺序比较随机。要想按自然顺序排的话用TreeSet。想按集合对象的放入顺序排序的话应LinkedHashSet。概念问题。
allen0228 2013-08-22
  • 打赏
  • 举报
回复
刚学java,多谢指导
ZZZ5512536 2013-08-21
  • 打赏
  • 举报
回复
HashSet是无序的。。你想按添加的顺序打印的话,需要用LinkedHashSet
末日哥 2013-08-21
  • 打赏
  • 举报
回复
HashSet无序的啊

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧