gpt4 book ai didi

java - 如何在 Java 中使用 MapEntry?

转载 作者:行者123 更新时间:2023-11-30 02:29:28 25 4
gpt4 key购买 nike

首先,我有一个扩展 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/

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