Java 使地图不以任意顺序打印水果,而是以从最小到最昂贵的顺序打印

Java 使地图不以任意顺序打印水果,而是以从最小到最昂贵的顺序打印,java,dictionary,hashmap,Java,Dictionary,Hashmap,我试图创建一个类来表示水果店,并希望输出按价格排序的可用水果,从最便宜到最贵。然而,即使我按照从最便宜到最昂贵的顺序将价格添加到水果价格映射中,它也总是以相同的任意顺序打印水果?我怎样才能让它不这样做 ****java**** import java.util.*; public class FruitStore { private Map<String, Double> fruitPricesMap; public FruitStore() {

我试图创建一个类来表示水果店,并希望输出按价格排序的可用水果,从最便宜到最贵。然而,即使我按照从最便宜到最昂贵的顺序将价格添加到水果价格映射中,它也总是以相同的任意顺序打印水果?我怎样才能让它不这样做

****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();
        }
    }

}
****电流输出****

Avaliable Fruit:
Apple            2.00
Cherries         3.00
Banana           1.00 
****所需输出(最便宜到最贵):****

您可以使用,并确保按照从最低到最昂贵的顺序将水果插入地图,因为它保持插入顺序,而不是常规的

即更改行:

fruitPricesMap = new HashMap<>();
foultpricesmap=newhashmap();
为此:

fruitPricesMap = new LinkedHashMap<>();
foultpricesmap=newlinkedhashmap();
您应该使用,并在自定义比较器中指定所需的顺序。

可能重复的可能重复的
fruitPricesMap = new HashMap<>();
fruitPricesMap = new LinkedHashMap<>();