2014-02-20 1 views
0

이미 채워진 색인 위에 숫자를 대기열에 넣으려고하면 순환 배열이 무시됩니까? 예를 들어, 정수 배열이 8 개인 경우 5 개의 인덱스에만 숫자가 저장됩니다. 2는 앞면이고 6은 뒤입니다. 4 개의 숫자를 큐에 넣으면 인덱스 1까지 채워지는데 3 개의 숫자 만 삽입됩니다. 삽입 할 숫자가 하나 남아 있지만 인덱스 2가 이미 채워지기 때문에 방이 없습니다. 마지막으로 번호를 매기는 것이 인덱스 2를 오버라이드합니까? 아니면 관련이없는 번호이고 백이 인덱스 1에 머물러 있으며, 인덱스 2 앞에 있습니까? 그것이 합리적 이길 바래서, 내 직감은 내가 다른 번호를 대기열에 추가하면 현재 번호를 덮어 쓰지 않을 것이라고 말하지만, 나는 안심이 필요합니다.전체 배열에서 대기열에 넣으려고하면 순환 배열이 현재 번호보다 우선합니까?

이것은 Java로 작성되었습니다. 정말 고마워요

+0

당신은 더 많은 정보 (일명 당신이 사용하는 언어와 문맥을 명시 할 필요가 있습니다.) – ASKASK

+0

Woops, 죄송합니다. 위의 게시물에 추가되었습니다. Java에서이 작업을 수행합니다. – user3247128

+0

당신은 당신 자신의 것을 쓰고 있습니까? 또는 Guava, Apache Commons 또는 표준 Java Collections Library를 사용합니까? –

답변

1

실제 답변은 구현에 따라 다릅니다. 길이를 검사하고 가득 차면 (예외를 던지거나 오류 상태 코드를 반환하여) 삽입을 거부하는 원형 배열을 작성할 수 있으며, 행복하게 덮어 쓰는 배열을 작성할 수 있습니다. 전체 큐에 삽입하려고 할 때 현재 스레드를 차단하고, 다른 스레드가 요소를 제거 할 때만 차단을 해제 할 수도 있습니다.

기존의 라이브러리를 사용하는 경우 해당 문서를 확인하더라도 실제 "표준"은 없습니다.

예를 들어 Java 프로그래밍 언어는 표준 라이브러리에 원형 배열을 가지고 있지 않습니다. 다시 말하지만, 어느 쪽이든 자유롭게 쓸 수 있습니다. java.util.Queue 인터페이스의 다양한 구현은 후드 아래 원형 배열을 가질 수 있지만 노출 된 것처럼 보이지는 않습니다.

+0

그게 내가 생각한 것이지만 여기에 그 질문은 구체적이지 않으므로 조금 혼란 스럽다. 나는 단지 구현에 달려 있다고 대답하는 메모를 추가 할 것이다. 귀하의 의견을 보내 주셔서 감사합니다. :) – user3247128

관련 문제