gpt4 book ai didi

java - 如何将条目放入 map ?

转载 作者:IT老高 更新时间:2023-10-28 20:30:03 24 4
gpt4 key购买 nike

有什么方法可以将整个 Entry 对象放入 Map 对象中,例如:

map.put(entry);

而不是像这样传递一个键值对:

map.put(key,value);

最佳答案

我已经搜索了 Map 接口(interface)方法,但没有方法获取一个条目并将其放入 map 中。因此我已经实现了它我自己使用了一点继承和 Java 8 接口(interface)。

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));
}
}


/**
* Creates a new Entry object given a key-value pair.
* This is just a helper method for concisely creating a new Entry.
* @param key key of the entry
* @param value value of the entry
*
* @return the Entry object containing the given key-value pair
*/
private static <K,V> Map.Entry<K,V> newEntry(K key, V value) {
return new AbstractMap.SimpleEntry<>(key, value);
}

/**
* An enhanced Map interface.
*/
public static interface MyMap<K,V> extends Map<K,V> {

/**
* Puts a whole entry containing a key-value pair to the map.
* @param entry
*/
public default V put(Entry<K,V> entry) {
return put(entry.getKey(), entry.getValue());
}
}

/**
* An enhanced HashMap class.
*/
public static class MyHashMap<K,V> extends HashMap<K,V> implements MyMap<K,V> {}

/**
* An enhanced TreeMap class.
*/
public static class MyTreeMap<K,V> extends TreeMap<K,V> implements MyMap<K,V> {}
}

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

关于java - 如何将条目放入 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39441096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com