标题:代码的结果输出不对 求大神帮忙看下
只看楼主
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-437785-1-1.html




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

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