На тестовых данных в Solution все работает, но валик не принимает. Подскажите пожалуйста, в чем может быть причина?
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;
private int _size;
public MyMultiMap(int repeatCount) {
this.repeatCount = repeatCount;
map = new HashMap<>();
}
@Override
public int size() {
//напишите тут ваш код
return map.size();
}
@Override
public V put(K key, V value) {
//напишите тут ваш код
V last = null;
if(map.containsKey(key)){
List<V> list = map.get(key);
if(list.size() != 0)
last = list.get(list.size()-1);
if(list.size() == repeatCount){
list.remove(0);
list.add(value);
}
else {
list.add(value);
++_size;
}
}
else {
List<V> list = new ArrayList<>();
list.add(value);
map.put(key, list);
++_size;
}
return last;
}
@Override
public V remove(Object key) {
//напишите тут ваш код
V val = null;
if(map.containsKey(key)){
List<V> list = map.get(key);
if(list == null || list.size() == 0){
map.remove(key);
}
else {
val = list.remove(0);;
--_size;
if(list.size() == 0)
map.remove(key);
}
}
return val;
}
@Override
public Set<K> keySet() {
//напишите тут ваш код
return map.keySet();
}
@Override
public Collection<V> values() {
//напишите тут ваш код
List<V> list = new ArrayList<>();
for(List<V> vals : map.values()){
if(vals != null)
list.addAll(vals);
}
return list;
}
@Override
public boolean containsKey(Object key) {
//напишите тут ваш код
return map.containsKey(key);
}
@Override
public boolean containsValue(Object value) {
//напишите тут ваш код
for(V val : this.values()){
if(value == null && val == null || value != null && value.equals(val))
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 + "}";
}
}