まず、AbstractMapを拡張したクラスがあります。JavaでMapEntryを操作するには?
public class ShowMap <K, V> extends AbstractMap <K, V>
クラスは、List型の二つの容器を持っています
private List <K> keys = new ArrayList <K>();
private List <V> values = new ArrayList <V>();
クラスは、同様にいくつかのmethosを持っています。 Vキーのような引数を取り、リストのキーに入れて置く方法:
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の取得がそうでなければ、メソッドteturnヌル、リスト値から値を返します。
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());
}
たくさんありがとうございました:)
ここ
「動作しません」と定義します。 –
「うまくいかない」とはどういう意味ですか?エラーとは何ですか? –
'MapEntry'はクラスではありません。 –