我正在嘗試創建一個類來表示水果店,并希望輸出按價格排序的可用水果,從最便宜到最貴。但是,即使我按照最便宜到最貴的順序將價格添加到我的 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 回答

犯罪嫌疑人X
TA貢獻2080條經驗 獲得超4個贊
您可以使用LinkedHashMap,并確保按照從最低到最高的順序將水果插入到地圖中,因為它維護插入順序,這與常規HashMap不同。
即換行:
fruitPricesMap = new HashMap<>();
對此:
fruitPricesMap = new LinkedHashMap<>();
添加回答
舉報
0/150
提交
取消