5 пункт не проходит, подскажите пожалуйста, что не так делаю
package com.javarush.task.task37.task3707;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.*;
public class AmigoSet<E> extends AbstractSet<E> implements Serializable, Cloneable, Set<E> {
private static final Object PRESENT = new Object();
private transient HashMap<E,Object> map;
public AmigoSet() {
map = new HashMap<>();
}
public AmigoSet( Collection<? extends E> collection) {
int initialCapacity = Math.max(16, (int)Math.ceil(collection.size()/.75f));
map = new HashMap<>(initialCapacity);
addAll(collection);
for (E e : collection) {
map.put(e, PRESENT);
}
}
@Override
public int size() {
return map.size();
}
@Override
public boolean isEmpty() {
if (map.isEmpty()) {
return true;
}
return false;
}
@Override
public boolean contains(Object o) {
if (map.containsKey(o)) {
return true;
}
return false;
}
@Override
public Iterator<E> iterator() {
return map.keySet().iterator();
}
@Override
public Object[] toArray() {
return new Object[0];
}
@Override
public <T> T[] toArray(T[] a) {
return null;
}
@Override
public boolean add(E e) {
if (map.get(e)!=null) {
map.put(e, PRESENT);
if (map.get(e).equals(PRESENT)) {
return false;
}
}
else if (map.get(e)==null) {
map.put(e, PRESENT);
if (map.get(e)==null) {
return false;
}
}
return true;
}
@Override
public boolean remove(Object o) {
map.remove(o);
return false;
}
@Override
public boolean containsAll(Collection<?> c) {
return false;
}
@Override
public boolean addAll(Collection<? extends E> c) {
return false;
}
@Override
public boolean retainAll(Collection<?> c) {
return false;
}
@Override
public boolean removeAll(Collection<?> c) {
return false;
}
@Override
public void clear() {
map.clear();
}
@Override
public Spliterator<E> spliterator() {
return Set.super.spliterator();
}
@Override
public AmigoSet<E> clone() throws CloneNotSupportedException {
AmigoSet clone = null;
try {
clone =(AmigoSet) super.clone();
clone.map =(HashMap) map.clone();
}
catch (Exception e) {
throw new InternalError();
}
return clone;
}
private void writeObject (ObjectOutputStream objectOutputStream) throws IOException {
objectOutputStream.defaultWriteObject();
int capacity = HashMapReflectionHelper.callHiddenMethod(map, "capacity");
float loadFactor = HashMapReflectionHelper.callHiddenMethod(map, "loadFactor");
objectOutputStream.writeInt(size());
objectOutputStream.writeInt(capacity);
objectOutputStream.writeFloat(loadFactor);
for (E e : map.keySet()) {
objectOutputStream.writeObject(e);
}
}
private void readObject (ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException {
objectInputStream.defaultReadObject();
objectInputStream.readObject();
int size = objectInputStream.readInt();
int capacity = objectInputStream.readInt();
float loadFactor = objectInputStream.readFloat();
map = new HashMap<>(capacity,loadFactor);
for (int i = 0 ; i<size; i++) {
add((E)objectInputStream.readObject());
}
}
}