Item 18. Composition
์์์ ์ํ์ฑ
๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ
class InstrumentedHashSet<E> extends HashSet<E> {
private int addCount = 0; // ์ถ๊ฐ๋ ์์์ ์
public InstrumentedHashSet() {
}
public InstrumentedHashSet(int initialCapacity, float loadFactor) {
super(initialCapacity, loadFactor);
}
@Override
public boolean add(E e) {
addCount++; // 4. ๊ฐ ์์๊ฐ ์ถ๊ฐ๋ ๋๋ง๋ค addCount ์ฆ๊ฐ
return super.add(e);
}
@Override
public boolean addAll(Collection<? extends E> c) {
addCount += c.size(); // 2. addCount ์ฆ๊ฐ
return super.addAll(c); // 3. ์์ ํด๋์ค์ addAll ํธ์ถ, addAll์ ๋ด๋ถ์ ์ผ๋ก add๋ฅผ ํธ์ถ
}
public int getAddCount() {
return addCount;
}
}
class Main {
public static void main(String[] args) {
InstrumentedHashSet<String> s = new InstrumentedHashSet<>();
s.addAll(List.of("ํฑ", "ํํ", "ํ")); // 1. addAll ํธ์ถ
System.out.println(s.getAddCount()); // 5. ๊ธฐ๋ํ๋ 3์ด ์๋ 6์ด ์ถ๋ ฅ๋จ
}
}์๋ก์ด ๋ฉ์๋ ์ถ๊ฐ
๋ฌธ์ ๋ฅผ ํํผํ๋ ๋ฐฉ๋ฒ
์์์ ์ฌ์ฉํด์ผํ๋ ์ํฉ
Last updated