Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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_Hashmap_Java 11 - Fatal编程技术网

Java 创建新地图。入门-似乎比需要的更难

Java 创建新地图。入门-似乎比需要的更难,java,hashmap,java-11,Java,Hashmap,Java 11,我有两种方法: @Override public void done(E e, Map.Entry<String, T> m) { } @Override public void done(E e, String k, T v) { this.done(e, null); } 但这会创建一个映射而不是Map.Entry。对于Java 9+,您可以使用: static void done(E,Map.Entry m){ //做点什么 } //使用不

我有两种方法:

 @Override
  public void done(E e, Map.Entry<String, T> m) {

  }

  @Override
  public void done(E e, String k, T v) {
     this.done(e, null);
  }
但这会创建一个映射而不是Map.Entry。

对于Java 9+,您可以使用:

static void done(E,Map.Entry m){
//做点什么
}
//使用不可变项
静态无效完成(E E、字符串k、T v){
完成(e,映射条目(k,v));
}
//使用可变条目
静态无效完成(E E、字符串k、T v){
完成(e,新的抽象映射。SimpleEntry(k,v));
}

请参见此处:
newabstractmap.SimpleEntry(“myKey”,value)
Nice(+1)。但是应该注意,
Map.entry(k,v)
将返回一个不可变的条目。如果需要更改,我想我们仍然需要使用好的旧的
抽象映射。SimpleEntry
@Kartik当然,谢谢更新。@Kartik
映射上的限制项与
映射的相同(例如,不仅不可变,而且不允许
空的
),OP似乎已经知道了。
this.done(e, Map.of(k,v));
static <E, T> void done(E e, Map.Entry<String, T> m) {
     // do something
}

// using immutable entry
static <E, T> void done(E e, String k, T v) {
    done(e, Map.entry(k, v));
}

// using mutable entry 
static <E, T> void done(E e, String k, T v) {
    done(e, new AbstractMap.SimpleEntry<>(k, v));
}