编写程序 TestMap.java ,练习 Map 映射集合的使用。按模板要求,将【代码】替换成相应的 Java 程序代码,使之能完成注释中的要求。 import java.util.*; class MyKey implements [ 代码 1] { // 实现 java.lang.Comparable 接口 int key; public MyKey(int key) { this.key = key; } @Override public String toString() { return "key=" + key; } [ 代码 2] // 实现 compareTo 方法,制定大小比较规则:按 key 值大小比较 [ 代码 3] // 覆盖 hashCode 方法,根据 key 值生成哈希码 [ 代码 4] // 覆盖 equals 方法,指定相等判断规则:如 key 值相同,则对象相等 } class MyValue { String value; public MyValue(String value) { this.value = value; } @Override public String toString() { return "value=" + value; } } public class TestMap { public static void main(String[] args) { MyKey key1 = new MyKey(1); MyKey key2 = new MyKey(2); MyKey key3 = new MyKey(3); MyValue value1 = new MyValue("a"); MyValue value2 = new MyValue("b"); MyValue value3 = new MyValue("c"); Map
hashMap = [ 代码 5] // 创建 HashMap 对象 [ 代码 6]; // 使用 put 方法,依次将
、
、
放入 hashMap 中 System.out.println("hashMap 中元素的数量: " + [ 代码 7]); // 使用 size 方法,获取 hashMap 中 entry 的数量 MyKey key4 = new MyKey(3); MyValue value4 = new MyValue("d"); [ 代码 8] // 将
放入 hashMap 中,思考:此时 hashMap 中 entry 的数量是多少? System.out.println(" 遍历 hashMap 中的 entry"); Set
> entries = [ 代码 9] // 使用 entrySet 方法,获取 hashMap 中的 entry 集合 for(Map.Entry
entry : entries) { MyKey myKey = [ 代码 10] // 使用 getKey 方法,获取 entry 中的 key MyValue myValue = [ 代码 11] // 使用 getValue ,获取 entry 中的 value System.out.println("<" + myKey + " , " + myValue + ">"); } System.out.println(" 是否包含 key3 : " + [ 代码 12]); // 使用 containsKey 方法,判断 hashMap 中是否包含 key3 System.out.println(" 是否包含 value3 : " + [ 代码 13]); // 使用 containsValue 方法,判断 hashMap 中是否包含 value3 SortedMap
treeMap = [ 代码 14] // TreeMap(Map m) 方法构建 TreeMap 对象,将 hashMap 中的所有元素放入此 TreeMap 中 System.out.println(" 遍历 treeMap 中的 entry"); [ 代码 15] // 遍历 treeMap ,观察输出结果是否有序 } } 程序执行的输出结果如下所示: hashMap 中元素的数量: 3 遍历 hashMap 中的 entry
是否包含 key3 : true 是否包含 value3 : false 遍历 treeMap 中的 entry