Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java:用空键隐藏条目的映射视图?_Java_Map_Transform - Fatal编程技术网

java:用空键隐藏条目的映射视图?

java:用空键隐藏条目的映射视图?,java,map,transform,Java,Map,Transform,我有一个映射,它包含一个带有空键的特殊值。改变事情并不容易,所以我没有这个 是否有方法执行以下任一操作: 查看此映射,它也是一个映射,隐藏空键条目 查看映射的keySet(),它隐藏空键条目 我所说的“视图”是指地图中的更改会导致视图中的更改 我认为后者更容易,但我不知道如何做。简单的方法是扩展映射并覆盖适当的方法来检查空键值。这将是: containsKey(Object key) entrySet() get(Object key) keySet() put(K key, V va

我有一个
映射
,它包含一个带有空键的特殊值。改变事情并不容易,所以我没有这个

是否有方法执行以下任一操作:

  • 查看此映射,它也是一个
    映射
    ,隐藏空键条目
  • 查看映射的
    keySet()
    ,它隐藏空键条目
我所说的“视图”是指地图中的更改会导致视图中的更改


我认为后者更容易,但我不知道如何做。

简单的方法是扩展映射并覆盖适当的方法来检查空键值。这将是:

containsKey(Object key)
entrySet() 
get(Object key) 
keySet() 
put(K key, V value) 
putAll(Map<? extends K,? extends V> m) 
containsKey(对象键)
入口集()
获取(对象键)
键集()
输入(K键,V值)

putAll(Map如果带有null键的值是一种特殊情况,并且不打算在访问条目时使用,为什么它会出现在映射中?是否有原因决定将其放入映射中而不是使用不同的字符串变量

听起来,使用不同的方法比尝试扩展映射以使其具有某些特殊属性更容易。这也将更明确地表明此字符串值是一个特殊值,而不会让未来的开发人员绊倒,他们必须在您之后查看此代码。

I u塞德番石榴;效果很好

 Maps.filterKeys(mymap, new Predicate<String>() {
    @Override public boolean apply(String key) { return key != null; } 
 }),
Maps.filterKeys(mymap,新谓词(){
@重写公共布尔应用(字符串键){return key!=null;}
}),
请在标题中保留“java”。我无法告诉您我在“相关”下搜索了多少次问题或看到了多少次问题,这听起来很有希望,但问题所指的语言与我需要学习的语言不同