// equalshashcode/SlowMap.java// (c)2017 MindView LLC: see Copyright.txt// We make no guarantees that this code is fit for any purpose.// Visit http://OnJava8.com for more book information.// A Map implemented with ArrayListsimport java.util.*;import onjava.*;public class SlowMap<K, V> extends AbstractMap<K, V> {private List<K> keys = new ArrayList<>();private List<V> values = new ArrayList<>();@Overridepublic V put(K key, V value) {V oldValue = get(key); // The old value or nullif(!keys.contains(key)) {keys.add(key);values.add(value);} elsevalues.set(keys.indexOf(key), value);return oldValue;}@Overridepublic V get(Object key) { // key: type Object, not Kif(!keys.contains(key))return null;return values.get(keys.indexOf(key));}@Overridepublic Set<Map.Entry<K, V>> entrySet() {Set<Map.Entry<K, V>> set= new HashSet<>();Iterator<K> ki = keys.iterator();Iterator<V> vi = values.iterator();while(ki.hasNext())set.add(new MapEntry<>(ki.next(), vi.next()));return set;}public static void main(String[] args) {SlowMap<String,String> m= new SlowMap<>();m.putAll(Countries.capitals(8));m.forEach((k, v) ->System.out.println(k + "=" + v));System.out.println(m.get("BENIN"));m.entrySet().forEach(System.out::println);}}/* Output:CAMEROON=YaoundeANGOLA=LuandaBURKINA FASO=OuagadougouBURUNDI=BujumburaALGERIA=AlgiersBENIN=Porto-NovoCAPE VERDE=PraiaBOTSWANA=GaberonePorto-NovoCAMEROON=YaoundeANGOLA=LuandaBURKINA FASO=OuagadougouBURUNDI=BujumburaALGERIA=AlgiersBENIN=Porto-NovoCAPE VERDE=PraiaBOTSWANA=Gaberone*/
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。