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