저는 데이터 구조의 개념에 익숙하지 않습니다. 그리고 저는 저의 사용을 위해 Stack을 만들었습니다.어레이 기반 스택 구현?
public class ArrayBasedStackImpl<T> {
@SuppressWarnings("unchecked")
private T[] DataStack= (T[]) new Object[10];
private int stack_pointer=-1;
public void push(T t) throws Exception
{
if(stack_pointer>9)
{
throw new Exception("Stack is full");
}
DataStack[++stack_pointer]=t;
}
public T pop() throws Exception
{
if(stack_pointer==-1)
{
throw new Exception("Stack Empty");
}
else
{
return DataStack[stack_pointer--];
}
}
public T peek()
{
return DataStack[stack_pointer];
}}
내가 with.Before 실제로 전체 규모를 구현 시작하는 백엔드 스토리지와 같은 배열을 사용하고, 내가
아래에있는 몇 가지 질문이 그것을하는 것이 좋습니다 있습니다 use Exception을 던지거나 스택이 메모리가 부족한 경우를 고려하여 예외 클래스를 작성해야합니다.
실제로 스택은 스택 기반 구현에 좋은 아이디어입니다. 사용 시나리오는 상당한 크기의 10 개의 객체를 밀어 넣는 곳입니다. 따라서 스택의 항목을 팝하면 메모리를 비울 수 있기를 원합니다. 어떻게 배열에서 항목을 삭제할 수 있습니까, 나는 많이 봤지만 couldnt 아무것도 좋은 찾을 수 있습니다. 연결된 목록을 내가 메모리에서 그것을 지우고 싶을 때 더 좋을 것입니다.
여기서 제네릭을 사용하고 있는데, Generics에서 Array를 사용하는 것은 나쁜 습관입니까?
[java.util.Stack] (http://docs.oracle.com/javase/6/docs/api/java/util/Stack.html)을 사용하지 않는 이유는 무엇입니까? – hd1
그것은 벡터 클래스를 사용합니다. 각 작업마다 동기화하고 싶지 않습니다. – Madusudanan
[소스] (http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/Stack.java)를 사용할 수 있음을 알고 있습니다. 너? – hd1