set转换数组或map输出值不一致

alister 2009-08-15 07:43:01

Set set = new HashSet();//已给定的数据类型。不能改为LinkHashSet
set.add("dng");
set.add("34");
set.add("45");
set.add("232ss3334");
set.add("dd");
set.add("dng1");
转换成String[] str;或者map类型
for (int i = 0; i < str.length; i++) {
log.info(str[i]);
}
打印的结果是:
dd
232ss3334
dng1
45
34
dng
问题是我想按上面的add顺序打印出来。
如何解决!
...全文
264 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zck_yy2007 2009-08-16
  • 打赏
  • 举报
回复
楼主对collection(List、set、map)基本概念不熟悉,建议先学习再问。
dajiadebeibei9 2009-08-16
  • 打赏
  • 举报
回复
linkedHashMap
小猪头是猪 2009-08-16
  • 打赏
  • 举报
回复
你用的这个是按照HASH编码实现存储的
我建议你最好是用LIST集合
要是需要按照ADD()的顺序输入应该用ArrayList()
最好
huachao1 2009-08-16
  • 打赏
  • 举报
回复
set容器本来就是无序的,可改为list
iampy 2009-08-16
  • 打赏
  • 举报
回复
HashSet内部是用一个Map实现的
tfsict2008 2009-08-16
  • 打赏
  • 举报
回复
linkedHashMap
feishare 2009-08-16
  • 打赏
  • 举报
回复
楼主,这没辙啊,set就是无序的
qinginhome 2009-08-16
  • 打赏
  • 举报
回复
用LinkedHashMap就可以解决了
sleep_ok 2009-08-16
  • 打赏
  • 举报
回复
你为什么要用集合类型呢? 集合的本质就是不记录顺序的
么么哒哒_ 2009-08-16
  • 打赏
  • 举报
回复
学习
GGMMYQL 2009-08-16
  • 打赏
  • 举报
回复
无解
malligator 2009-08-16
  • 打赏
  • 举报
回复
让Oracle下的SUN部门帮你把HashSet改成有序的吧
healer_kx 2009-08-15
  • 打赏
  • 举报
回复
恐怕是没有办法了,因为Set的本质是平衡二叉树,不会记录插入的顺序的。
你要自己用ArrayList来存这个顺序。

62,621

社区成员

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

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