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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 山鹰 中级黑马   /  2013-6-5 13:20  /  4141 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孙百鑫 于 2013-6-15 08:36 编辑

Map集合中keySet的取值方式,输出是按什么顺序?既不是输入的顺序,也不值得顺序

public static void main(String[] args) {
               
                Map<String,String> map = new HashMap<String,String>();
               
                        map.put("张三", "20");
                        map.put("李四", "19");
                        map.put("王五", "25");
                        map.put("赵六", "22");
                        //先获取Map集合的所有键的Set集合, keySet();
                        Set<String> keySet = map.keySet();
                        //有了Set集合就获取迭代器
                        for(Iterator<String> it = keySet.iterator(); it.hasNext(); ){
                                //迭代出Map集合的键
                                String key = it.next();
                                //通过Map集合的get方法获取值
                                String value = map.get(key);
                                System.out.println("key" + key + "-->" + "value" + value);
                                
                        }
        }
输出结果:
key赵六-->value22
key张三-->value20
key李四-->value19
key王五-->value25

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

8 个回复

倒序浏览
map是无序的,list才是有序的,基础的程序理念。和它的编译器实现有关
如果实现显示用map排序的话,我给个例子你把
代码如下
  1. Map<String, Integer> map = (Map<String, Integer>)new ListOrderedMap();   
  2.        map.put("张三", 20);  
  3.        map.put("李四", 19);   
  4.        map.put("王五", 20);        
  5.    for (String key : map.keySet()) {   
  6.         System.out.println(map.get(key));
  7.     }
复制代码
但是我不建议这么用,效率不高。map的维护成本本身是高于array(list)的,如果再维护map本身的有序化,成本会是加倍,他涉及到实际数据存在,以及用额外的列表去把keys做序列化索引。 呵呵个人观点。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 个人观点很好

查看全部评分

回复 使用道具 举报
Jomes 发表于 2013-6-5 13:40
map是无序的,list才是有序的,基础的程序理念。和它的编译器实现有关
如果实现显示用map排序的话,我给个例 ...

个人观点很好   我喜欢自己有研究的人
回复 使用道具 举报
楼主问题解决的话.请改主题分类.该成已解决哦
回复 使用道具 举报
map是无序的,list才是有序的
回复 使用道具 举报
孙百鑫 发表于 2013-6-15 07:21
楼主问题解决的话.请改主题分类.该成已解决哦

怎么改  原来改过  现在在哪里改
回复 使用道具 举报
山鹰 发表于 2013-6-15 08:29
怎么改  原来改过  现在在哪里改

可能论坛更新出现点小问题.我帮您改了:)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马