为了账号安全,请及时绑定邮箱和手机立即绑定

使地图不按任意顺序打印水果,而是按从最低到最高的顺序打印

使地图不按任意顺序打印水果,而是按从最低到最高的顺序打印

烙印99 2022-05-12 17:38:49
我正在尝试创建一个类来表示水果店,并希望输出按价格排序的可用水果,从最便宜到最贵。但是,即使我按照最便宜到最贵的顺序将价格添加到我的 FruitPricesMap 中,它总是以相同的任意顺序打印水果?我怎样才能让它不这样做?****水果商店.java****import java.util.*;public class FruitStore {    private Map<String, Double> fruitPricesMap;    public FruitStore() {        fruitPricesMap = new HashMap<>();    }    public boolean addOrUpdateFruit(String fruitName, double fruitPrice) {        fruitPricesMap.put(fruitName, fruitPrice);        return true;    }    public void printAvaliableFruit() {        System.out.println("Avaliable Fruit:");        for (String key : fruitPricesMap.keySet()) {            System.out.printf("%-15s  %.2f", key, fruitPricesMap.get(key));            System.out.println();        }    }}****FruitStoreApp.java****public class FruitStoreApp {    public static void main(String[] args) {        FruitStore fs = new FruitStore();        fs.addOrUpdateFruit("Banana", 1.00);        fs.addOrUpdateFruit("Apple", 2.00);        fs.addOrUpdateFruit("Cherries", 3.00);        fs.printAvaliableFruit();    }}****电流输出****Avaliable Fruit:Apple            2.00Cherries         3.00Banana           1.00 ****期望的输出(从最便宜到最贵):****Avaliable Fruit:Banana           1.00Apple            2.00Cherries         3.00
查看完整描述

2 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

您应该使用TreeMap并在自定义比较器中指定您想要的顺序。



查看完整回答
反对 回复 2022-05-12
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

您可以使用LinkedHashMap,并确保按照从最低到最高的顺序将水果插入到地图中,因为它维护插入顺序,这与常规HashMap不同。

即换行:

fruitPricesMap = new HashMap<>();

对此:

fruitPricesMap = new LinkedHashMap<>();


查看完整回答
反对 回复 2022-05-12
  • 2 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信