где может быть ошибка
package com.javarush.task.task36.task3610;
import java.io.Serializable;
import java.util.*;
public class MyMultiMap<K, V> extends HashMap<K, V> implements Cloneable, Serializable {
static final long serialVersionUID = 123456789L;
private HashMap<K, List<V>> map;
private int repeatCount;
public MyMultiMap(int repeatCount) {
this.repeatCount = repeatCount;
map = new HashMap<>();
}
@Override
public int size() {
//напишите тут ваш код
int count = 0;
for(Map.Entry<K, List<V>> entry : map.entrySet()) {
for(V v : entry.getValue()) {
count++;
}
}
return count;
}
@Override
public V put(K key, V value) {
//напишите тут ваш код
List<V> list = map.get(key);
V v = null;
if (list == null) {
ArrayList<V> list1 = new ArrayList<>();
list1.add(value);
map.put(key, list1);
return null;
}
if (list != null) {
v = list.get(list.size() - 1);
}
if (map.containsKey(key)) {
int count = 0;
for (V values : list) {
count++;
}
if (count < repeatCount) {
list.add(list.size(), value);
} else if (count == repeatCount) {
list.remove(0);
list.add(list.size(), value);
}
map.put(key, list);
return v;
}
return null;
}
@Override
public V remove(Object key) {
//напишите тут ваш код
V v = null;
if (map.containsKey(key)) {
List<V> list = map.get(key);
if (list != null && !list.isEmpty()) {
v = list.remove(0);
return v;
} else {
map.remove(key);
}
}
return v;
}
@Override
public Set<K> keySet() {
//напишите тут ваш код
Set<K> set = new HashSet<>();
for(K k : map.keySet()) {
set.add(k);
}
return set;
}
@Override
public Collection<V> values() {
//напишите тут ваш код
ArrayList<V> list = new ArrayList<>();
for(K k : map.keySet()) {
List<V> lists = map.get(k);
for(V v : lists) {
list.add(v);
}
}
return list;
}
@Override
public boolean containsKey(Object key) {
//напишите тут ваш код
return map.containsKey(key);
}
@Override
public boolean containsValue(Object value) {
//напишите тут ваш код
for(K k : map.keySet()) {
List<V> list = map.get(k);
if(list.contains(value)) {
return true;
}
}
return false;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder("{");
for (Map.Entry<K, List<V>> entry : map.entrySet()) {
sb.append(entry.getKey());
sb.append("=");
for (V v : entry.getValue()) {
sb.append(v);
sb.append(", ");
}
}
String substring = sb.substring(0, sb.length() - 2);
return substring + "}";
}
}