import java.util.Collection;
import java.util.HashSet;
public class CountableHashSet<E> extends HashSet<E> {
private int count = 0;
public CountableHashSet(){}
public CountableHashSet(int initCap, float loadFactor) {
super(initCap, loadFactor);
}
@Override
public boolean add(E e) {
count++;
return super.add(e);
}
@Override
public boolean addAll(Collection<? extends E> collection) {
count += collection.size();
return super.addAll(collection);
}
public int getCount() {
return count;
}
}
CountableHashSet<String> s = new CountableHashSet<>();
s.addAll(Arrays.asList("Виталик", "Витя", "Максим"));
Считает и записывает в поле класса count количество добавленных элементов в HashSet, а больше и ничего. Все остальное делает отцовский класс HashSet из пакета java.util.
Странно только, что нету декрементации при удалении.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости