import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class KoleksiDihitungWarisan {
    public static void main(String[] args) {
        SetDiukur<String> himpunan = new SetDiukur<>();
        himpunan.addAll(List.of("Budi", "Siti", "Dewi"));
        System.out.println("Jumlah elemen : " + himpunan.size());
        System.out.println("Tambah tercatat: " + himpunan.jumlahTambah());
    }
}

// Pewarisan dari HashSet: implementasi berbasis detail internal
class SetDiukur<E> extends HashSet<E> {
    private int jumlahTambah = 0;

    @Override
    public boolean add(E e) {
        jumlahTambah++;
        return super.add(e);
    }

    @Override
    public boolean addAll(Collection<? extends E> c) {
        jumlahTambah += c.size();
        return super.addAll(c);
    }

    int jumlahTambah() {
        return jumlahTambah;
    }
}
