자바 스택과 큐의 다른 구현을위한 이유?

A. Mashreghi :

스택은 자바의 크기 조정 배열 (벡터)로 구현되었습니다. 당신은 선택의 여지가 있지만, 그러나 나의 이해, 큐는 보통 일반적인 응용 프로그램에 대한 LinkedList의 인스턴스화됩니다.

나는 이론적으로 그들이 O (1) 자신의 모든 작업을 지원하는 것을 알고 최악의 경우 또는 상각. 그러나, 링크리스트 큐에 더 적합한 크기 조정하면서 배열 이상의 스택에 적합하는 구체적인 이유는 무엇입니까?

즉, 왜 모두 크기 조정 배열, 또는 연결리스트를 사용하지 않는?

야곱 G. :

나는 이론적으로 그들이 O (1) 자신의 모든 작업을 지원하는 것을 알고 최악의 경우 또는 상각.

같이, 착각하는 것 Stack#search입니다 O(n)작업.

... 연결리스트가 큐에 더 적합 동안?

A는 LinkedListA와 사용할 때 최적하기 어렵다 Queue의해 설명 된 바와 같이, 문서ArrayDeque:

스택으로서 사용하고,보다 빠른 LinkedList의 경우 대기열로 사용될 때의 ArrayDeque]를 빠르게 스택보다 쉽다.


즉, 왜 모두 크기 조정 배열, 또는 연결리스트를 사용하지 않는?

때문에 Stack그 지정된대로 사용할 수 없습니다 오래된 클래스 문서 :

LIFO 스택 동작의 더 완전하고 일관된이 클래스에 우선하여 표기 양단 큐 인터페이스의 구현에 의해 제공된다.

추천

출처http://43.154.161.224:23101/article/api/json?id=178977&siteId=1