如何将条目放入地图?

如何将条目放入地图?,第1张

如何将条目放入地图?

我已经在Map接口方法上进行了搜索,但是没有方法接受一个条目并将其放入地图中。因此,我自己使用一点继承和Java 8接口来实现它。

import java.util.AbstractMap;import java.util.HashMap;import java.util.Map;import java.util.TreeMap;public class Maps {    // Test method    public static void main(String[] args) {        Map.Entry<String, String> entry1 = newEntry("Key1", "Value1");        Map.Entry<String, String> entry2 = newEntry("Key2", "Value2");        System.out.println("HashMap");        MyMap<String, String> hashMap = new MyHashMap<>();        hashMap.put(entry1);        hashMap.put(entry2);        for (String key : hashMap.keySet()) { System.out.println(key + " = " + hashMap.get(key));        }        System.out.println("nTreeMap");        MyMap<String, String> treeMap = new MyTreeMap<>();        treeMap.put(entry1);        treeMap.put(entry2);        for (String key : treeMap.keySet()) { System.out.println(key + " = " + treeMap.get(key));        }    }        private static <K,V> Map.Entry<K,V> newEntry(K key, V value) {        return new AbstractMap.SimpleEntry<>(key, value);    }        public static interface MyMap<K,V> extends Map<K,V> {                public default V put(Entry<K,V> entry) { return put(entry.getKey(), entry.getValue());        }    }        public static class MyHashMap<K,V> extends HashMap<K,V> implements MyMap<K,V> {}        public static class MyTreeMap<K,V> extends TreeMap<K,V> implements MyMap<K,V> {}}

MyMap
接口仅仅是一个扩展的接口
Map
通过添加一种以上的方法,该接口
public default V put(Entry<K,V>entry)
。除了仅定义方法外,还对默认实现进行了编码。这样做,我们现在可以
Map
通过定义一个新的实现
MyMap
接口的类并扩展我们选择的map实现类,将该方法添加到实现该接口的
任何类中。所有这些都在一行中!上面代码的底部演示了这一点,其中创建了两个类,每个类都扩展了HashMap和TreeMap实现。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5561792.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-14
下一篇2022-12-14

发表评论

登录后才能评论

评论列表(0条)

    保存