Во время итерации Map<>
используется для цикла
for(Map.Entry<K,V> mapEntry : myMap.entrySet()){
// something
}
Я нашел entrySet()
метод возвращает набор Entry<K,V>
так что add(Entry<K,V> e)
метод
Затем я создал класс, который реализует Map.Entry<K,V>
и попытался вставить объект, как показано ниже
public final class MyEntry<K, V> implements Map.Entry<K, V> {
private final K key;
private V value;
public MyEntry(K key, V value) {
this.key = key;
this.value = value;
}
@Override
public K getKey() {
return key;
}
@Override
public V getValue() {
return value;
}
@Override
public V setValue(V value) {
V old = this.value;
this.value = value;
return old;
}
}
Entry<String, String> entry = new MyEntry<String, String>("Hello", "hello");
myMap.entrySet().add(entry); //line 32
ошибки компиляции нет,
но выдает ошибку времени выполнения
Exception in thread "main"
java.lang.UnsupportedOperationException
at java.util.AbstractCollection.add(AbstractCollection.java:262)
at com.seeth.AboutEntrySetThings.main(AboutEntrySetThings.java:32)