gpt4 book ai didi

java - 在 Java 中返回 Map.Entry

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

这可能是个愚蠢的问题,但我如何在 java 中返回 Map.Entry 对?

给定一个方法:

public Map.Value<K,V> next(){

return ???
}

如何构建和返回 map 值?这是我正在为 HashMap 实现的迭代器的内部。我可以毫无问题地获取我想要返回的值,但是 java 不允许我实例化 Map.Entry 对象,除非我实现所有抽象方法,即使那样它也不起作用。我是否需要为 Map.Entry 构建一个构造函数,它可以传递我正在提取的 K、V 值?

非常感谢任何帮助/指导

更新

我正在尝试为自定义 HashMap 实现迭代器,并且需要实现 next() 方法 - 我的代码结构是:

@Override
public Iterator<Map.Entry<K, V>> iterator() {
return new Iterator<Map.Entry<K, V>>(){


public boolean hasNext(){
return false;
}

public Map.Entry<K,V> next(){
Map.Entry<K, V> retVal = new Map.Entry<K, V>() {

public Map.Entry<K, V>(K key, V val){

}
@Override
public K getKey() {
// TODO Auto-generated method stub
return null;
}

@Override
public V getValue() {
// TODO Auto-generated method stub
return null;
}

@Override
public V setValue(V value) {
// TODO Auto-generated method stub
return null;
}
};


}

return null;
}

public void remove(){
throw new UnsupportedOperationException();
}


};
}

}

我有抽象方法,但我不确定应该如何实现它们。再次感谢您的帮助

最佳答案

做了一些研究,如果您需要返回一个 Map.Entry 值并且想在不实现 Map.Entry 类和方法的情况下这样做,您可以通过返回一个 AbstractMap.SimpleEntry 来实现。

我设置了一些虚拟代码来显示:

import java.util.HashMap;
import java.util.Map;


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

public static void main (String [] args){

}

public Map.Entry<K,V> returnMapValue(K k, V v){

return new java.util.AbstractMap.SimpleEntry<K,V>(k,v);
}

}

这显然没有做任何事情,但它将返回值注册为有效,这是原始问题

关于java - 在 Java 中返回 Map.Entry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26581085/

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