| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 474 人关注过本帖
标题:代码的结果输出不对 求大神帮忙看下
只看楼主 加入收藏
a493860409
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-10-17
收藏
 问题点数:0 回复次数:4 
代码的结果输出不对 求大神帮忙看下
import java.util.*;
public class L4_5
{
    public static void main(String[] args)
    {
        HashMap ee=new HashMap();
        Sp sp1=new Sp("001","香肠",20);
        Sp sp2=new Sp("002","果浦",10);
        Sp sp3=new Sp("003","面包",2);
        ee.put("001",sp1);
        ee.put("002",sp2);  // 键  
        ee.put("003",sp3);
        
        Iterator it=ee.keySet().iterator();
        while(it.hasNext())
        {
            String key=it.next().toString();
            Sp sp=(Sp)ee.get(key);
            System.out.println("食品名称:"+sp.getMingcheng());
            System.out.println("食品价格:"+sp.getJiage()+"元");
        }
    }
}

代码很简单,但是结果总是不如意,得到这么一个结果,也不知道问题出在了哪里。

食品名称:果浦
食品价格:10.0元
食品名称:香肠
食品价格:20.0元
食品名称:面包
食品价格:2.0元
搜索更多相关主题的帖子: public import 
2014-10-27 21:50
hhwz
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:87
帖 子:687
专家分:4502
注 册:2011-5-22
收藏
得分:0 
HashMap 是没有顺序的
2014-10-28 09:23
Java258
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:122
专家分:561
注 册:2014-10-15
收藏
得分:0 
你如果想排序可以用list

虔诚请教,虚心学习……
2014-10-28 13:36
Java258
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:122
专家分:561
注 册:2014-10-15
收藏
得分:0 
程序代码:
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("d", 2);
map.put("c", 1);
map.put("b", 1);
map.put("a", 3);
List<Map.Entry<String, Integer>> infoIds =
    new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
//排序前
for (int i = 0; i < infoIds.size(); i++) {
    String id = infoIds.get(i).toString();
    System.out.println(id);
}
//d 2
//c 1
//b 1
//a 3
//排序
Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() { 
    public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {    
        //return (o2.getValue() - o1.getValue());
        return (o1.getKey()).toString().compareTo(o2.getKey());
    }
});

//排序后
for (int i = 0; i < infoIds.size(); i++) {
    String id = infoIds.get(i).toString();
    System.out.println(id);
}
//根据key排序
//a 3
//b 1
//c 1
//d 2
//根据value排序
//a 3
//d 2
//b 1
//c 1

虔诚请教,虚心学习……
2014-10-28 13:36
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:0 
HashMap不保证数据存放的顺序,所以代码的结果输出是正确的
2014-10-28 18:54
快速回复:代码的结果输出不对 求大神帮忙看下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024085 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved