java - 如何在 Java 中使用 MapEntry?

标签 java

首先,我有一个扩展 AbstractMap 的类。

public class ShowMap <K, V> extends AbstractMap <K, V>

类有两个列表类型的容器:

private List <K> keys = new ArrayList <K> ();
private List <V> values = new ArrayList <V> ();

类也有多种方法。 方法 V put 接受一个像键一样的参数并将其放入列表键中:

public V put (K key, V value){
    V oldValue = this.get(key);
    if (!keys.contains(key)){
        keys.add(key);
        values.add(value);
    }
    else{
        values.set(keys.indexOf(key), value);
    }

    return oldValue;
}

方法 V get 从 List 值中返回一个值,否则方法 teturn null:

public V get (Object obje){
    if (!keys.contains(obje))
        return null;
    return values.get(keys.indexOf(obje));
}

下面的方法形成了一组MapEntry,但是不起作用:

public Set<java.util.Map.Entry<K, V>> entrySet() {

    Set <Map.Entry<K, V>> sets = new HashSet <Map.Entry<K, V>> ();
    Iterator<K> ki = keys.iterator();
     Iterator<V> vi = values.iterator();

     while (ki.hasNext()){
        sets.add(new MapEntry <K, V> (ki.next(), vi.next())); // This line should to work, however It doesn't work...
     }
    return sets;
}

当然主要方法:

public static void main (String [] args){
    ShowMap <String, String> SM = new ShowMap <String, String> ();
    SM.putAll(Countries.FMap.capitals(10));
    System.out.println(SM);
    System.out.println(SM.get("Moscow"));
    System.out.println(SM.entrySet());
}

非常感谢:)

最佳答案

public Set<java.util.Map.Entry<K, V>> entrySet() {
        Set <Map.Entry<K, V>> sets = new HashSet <Map.Entry<K, V>> ();
        Iterator<K> ki = keys.iterator();
         Iterator<V> vi = values.iterator();

         while (ki.hasNext()){
            sets.add(new MapEntry <K, V> (ki.next(), vi.next())); // This line should to work, however It doesn't work...
         }
        return sets;
    }

这里您返回一组 Map.Entry,而不是 MapEntry。而且,MapEntry 不是一个类。请更新代码。

关于java - 如何在 Java 中使用 MapEntry?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44603473/

相关文章:

java - 从本地机器到 AWS RDS PostgreSQL 数据库的连接速度非常慢

java - 如何解决java中的 “No Dialect mapping for JDBC type: -1”错误

ubuntu - 尽管我实际上使用的是 Oracle JDK,但为什么 Android Studio 不断发出有关 OpenJDK 的警告?

java - 在声明后为 Java 中的常量设置值

java - 无法启动 Activity ComponentInfo | E/Android运行时 : FATAL EXCEPTION

java - 从单个主机注册 Spring Boot Eureka 客户端的多个实例

java - 使用 PDFBox 2.0 从 PDF 中提取文本

java - 为什么在 Linux 中调用 "Runtime.getRuntime().exec(cmd);"没有输出?

java - 为什么 Java 7 的右侧没有遗漏 Diamond 运算符?

java - Java 中什么比较贵?序列化还是写入文件?