有序取出Map集合的元素

最近写到一个程序,返回了map,但是经过查阅资料,map是没有顺序的,各种查阅资料无果,最后自己写了这个方法。。

1,通过map集合的keySet()方法,获取到一个包含map所有key的Set集合

2,定义一个新的TreeSet集合(TreeSet集合有自动排序功能)

3,将第一步得到的Set集合遍历赋给TreeSet集合,这样所有key都排好序并保存在TreeSet里面

4,然后通过TreeSet的迭代器遍历,并同时根据迭代器返回的key,一个一个取出map里面的value

----------------------------------------------------------------代码示例------------------------------------------------------------------------------

 

Map<Integer, String> oldMap=new HashMap<Integer,String>();//待排序的map集合
Map<Integer, String> newMap=new HashMap<Integer,String>();//排序后的map集合
Set<Integer> keySet = oldMap.keySet();//存放key的set集合
TreeSet<Integer> keyTreeSet = new TreeSet<Integer>();//存放key排序后的set集合
Iterator<Integer> itKeySet;//Set集合的迭代器
Iterator<Integer> itKeyTreeSet;//TreeSet集合的迭代器

  //放入一些测试数据   oldMap.put(1, "content1"); oldMap.put(5, "content5"); oldMap.put(6, "content6"); oldMap.put(10, "content10"); oldMap.put(11, "content11"); oldMap.put(100, "content100"); oldMap.put(999, "content999"); keySet=oldMap.keySet();//获取map的所有key itKeySet=keySet.iterator(); while (itKeySet.hasNext()) {   Integer key = (Integer) itKeySet.next();   System.out.print(key+" ");//打印排序前key的顺序     keyTreeSet.add(key); } System.out.println("\n"); itKeyTreeSet=keyTreeSet.iterator(); while (itKeyTreeSet.hasNext()) {   Integer key = (Integer) itKeyTreeSet.next();   System.out.print(key+" ");//打印一下排序后key的顺序     newMap.put(key, oldMap.get(key));//此时根据排序好的TreeSet挨个取出Map里面的value,此处我只是放到了一个newMap中 }

 

 

 

打印key结果如下所示

 

转载于:https://www.cnblogs.com/convict/p/8318352.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值