Item 29 - 이왕이면 제네릭 타입으로 만들라
이왕이면 제네릭 타입으로 만들라
Intro
제네릭이 필요한 Object 기반 스택
public class Stack {
private Object[] elements;
private mnt size = 0;
private static final int DEFAULT_INITIAL_CAPACITY = 16;
public Stack() {
elements = new Object[DEFAULT_INITIAL_CAPACITY];
}
public void push(Object e) {
ensureCapacity();
elements[size++] = e;
}
public Object pop() {
if (size == 0)
throw new EmptyStackException();
Object result = elements[-size];
elements[size] = null; // 다쓴참조해제
return result;
}
public boolean isEmpty() {
return size = 0;
}
private void ensureCapacity() {
if (elements.length == size)
elements = Arrays.copyOf(elements, 2 * size + 1);
}
}배열을 사용하는 코드를 제네릭으로 만들 때 문제가 발생하게 되고, 적절한 해결책은 두 가지가 있다.
제네릭 Stack 을 사용하는 예시
핵심 정리
Last updated