java - 在 Java 中返回 Map.Entry

标签 java hashmap hashset

这可能是个愚蠢的问题,但我如何在 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/

相关文章:

java - 为什么下面的代码返回设置大小为 5?即使 hashcode 和 equals 方法被重写,它也应该返回集合大小为 3

equals - 这个 HashSet 测试示例可能吗?

scala - Scala 中的 SynchronizedSet 和 set 操作

java - HashSet 中的 HashCode 行为

java - 了解斯坦福 SUTime 输出标签

java - 将 "Native Advanced Ads"放入弹出窗口关闭

java - 关闭 JFrame 窗口?

java - 更新行时 SQLite 中没有这样的列错误

c++ - 对于对象图,我可以放置对象还是成对放置对象?

arrays - 将 ArrayList 转换为 JSONArray