介绍
在 Java 中,Map 数据结构用于存储键值对。由于 Map 中的数据并不是按顺序存储的,因此找到其中的最大值是一个具有挑战性的任务。在本实验中,你将学习如何使用迭代方法和 Collections
类来找到 Java Map 中的最大值。
在 Java 中,Map 数据结构用于存储键值对。由于 Map 中的数据并不是按顺序存储的,因此找到其中的最大值是一个具有挑战性的任务。在本实验中,你将学习如何使用迭代方法和 Collections
类来找到 Java Map 中的最大值。
创建一个 Java 程序,生成一个以键值对格式存储每门课程价格的 Map
。
import java.util.*;
public class MaxValueInMap {
public static void main(String args[]) {
Map<String, Integer> coursePrice = new HashMap<>();
coursePrice.put("Java", 5000);
coursePrice.put("Python", 3000);
coursePrice.put("CPP", 4000);
coursePrice.put("Android", 8000);
System.out.println(coursePrice);
}
}
保存文件并使用以下命令运行程序:
javac MaxValueInMap.java && java MaxValueInMap
遍历 Map 中的所有值以找到最大值。为此,创建一个 Map
类型的空 Entry
,然后遍历 Map 中的所有值。每当遇到更大的值或空值时,将其赋值给 Entry,最后直接打印 Entry 的值。
import java.util.*;
public class MaxValueInMap {
public static void main(String args[]) {
Map<String, Integer> coursePrices = new HashMap<>();
Map.Entry<String, Integer> maxPrice = null;
coursePrices.put("Java", 5000);
coursePrices.put("Python", 3000);
coursePrices.put("CPP", 4000);
coursePrices.put("Android", 8000);
for (Map.Entry<String, Integer> price : coursePrices.entrySet()) {
if (maxPrice == null || price.getValue().compareTo(maxPrice.getValue()) > 0) {
maxPrice = price;
}
}
System.out.println("Maximum price is: " + maxPrice.getValue());
}
}
保存文件并使用以下命令运行程序:
javac MaxValueInMap.java && java MaxValueInMap
在这里,我们可以使用 Collections.max()
方法来查找最大值。Collections.max()
方法会查找并返回集合中存在的最大元素。在本例中,我们将传递 Map.values()
。
import java.util.*;
public class MaxValueInMap {
public static void main(String args[]) {
Map<String, Integer> coursePrice = new HashMap<>();
coursePrice.put("Java", 5000);
coursePrice.put("Python", 3000);
coursePrice.put("CPP", 4000);
coursePrice.put("Android", 8000);
System.out.println("maximum price is : "+ Collections.max(coursePrice.values()));
}
}
保存文件并使用以下命令运行程序:
javac MaxValueInMap.java && java MaxValueInMap
如果我们想要查找最大键而不是值,那么需要将 Map.keySet()
方法而不是 Map.values()
传递给 Collections.max()
方法。在本例中,所有课程价格是键,课程名称是值。
import java.util.*;
public class MaxValueInMap {
public static void main(String args[]) {
Map<Integer, String> coursePrice = new HashMap<>();
coursePrice.put(5000, "Java");
coursePrice.put(3000, "Python");
coursePrice.put(4000, "CPP");
coursePrice.put(8000, "Android");
System.out.println("maximum price is : " + Collections.max(coursePrice.keySet()));
}
}
保存文件并使用以下命令运行程序:
javac MaxValueInMap.java && java MaxValueInMap
在本实验中,你学习了如何在 Java Map 中查找最大值和最大键。你实现了迭代方法,并使用 Collections
类来查找 Java Map 中的最大值。继续练习以巩固你的 Java 编程技能。