public class Pair { private K key; private V value; public Pair(K key, V value) { this.key = key; this.value = value; } public K getKey() { return key; } public V getValue() { return value; } // swap:交换后原key变value,原value变key,返回新Pair public Pair swap() { return new Pair<>(value, key); } } import java.util.concurrent.ConcurrentHashMap; public class Cache { private final ConcurrentHashMap cache = new ConcurrentHashMap<>(); public void put(K key, V value) { cache.put(key, value); } public V get(K key) { return cache.get(key); } public V remove(K key) { return cache.remove(key); } public void clear() { cache.clear(); } public int size() { return cache.size(); } public boolean containsKey(K key) { return cache.containsKey(key); } }