gpt4 book ai didi

java - 有只写的 map 吗?

转载 作者:行者123 更新时间:2023-11-29 03:15:24 24 4
gpt4 key购买 nike

有没有相当于NullWriter的映射? http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/output/NullWriter.html

我写了下面的内容,但是标准的实现会更好:

import java.util.Collection;
import java.util.Map;
import java.util.Set;

/**
* a "write only " that discards all values. Useful as a place holder for
* optional usage of a real map
*
* @param <K>
* @param <V>
*/
public class NullMap<K, V> implements Map<K, V> {

public NullMap() {
}

@Override
public int size() {
return 0;
}

@Override
public boolean isEmpty() {
return true;
}

@Override
public boolean containsKey(Object key) {
return false;
}

@Override
public boolean containsValue(Object value) {
return false;
}

@Override
public V get(Object key) {
return null;
}

@Override
public V put(K key, V value) {
return null;
}

@Override
public V remove(Object key) {
return null;
}

@Override
public void putAll(Map<? extends K, ? extends V> m) {

}

@Override
public void clear() {
}

@Override
public Set<K> keySet() {
throw new UnsupportedOperationException("Null map");
}

@Override
public Collection<V> values() {
throw new UnsupportedOperationException("Null map");
}

@Override
public Set<java.util.Map.Entry<K, V>> entrySet() {
throw new UnsupportedOperationException("Null map");
}
}

补充:用例在某些情况下我希望记录一些数据以供以后使用,而在某些情况下我不希望。宁愿用丑陋的代码来装饰代码

if (map != null) {
map.put("frick","frack");
}

我更喜欢写作

map.put("frick","frack");

如果将 map 分配给 NullMap,则将数据丢弃。

最佳答案

据我所知,从 TreeMap 或 HashMap 扩展可能会让生活更轻松。

public class BulimiaMap<K, V> extends HashMap<K, V> {

@Override
public V put(K key, V value) {
return null;
}

关于java - 有只写的 map 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26975748/

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