에서 java.util.PriorityQueue 우리는 방법을 가지고 add(E e)
와 offer(E e)
. 두 방법 모두 다음과 같이 문서화되어 있습니다.
지정된 요소를이 우선 순위 큐에 삽입합니다.
이 두 방법의 차이점은 무엇입니까?
에서 java.util.PriorityQueue 우리는 방법을 가지고 add(E e)
와 offer(E e)
. 두 방법 모두 다음과 같이 문서화되어 있습니다.
지정된 요소를이 우선 순위 큐에 삽입합니다.
이 두 방법의 차이점은 무엇입니까?
답변:
차이점을 찾으려면 PriorityQueue API javadocs 를 따라야합니다. PriorityQueue API javadocs 는 Queue
인터페이스의 각 메소드를 독자에게 참조하는 "Specified By"섹션이 있습니다.
삽입은, 용량 제한으로 위반하는 성공했을 경우는 true를 돌려 주어와 않고 곧 실행할 수있는 경우이 큐에 지정된 요소가 있는 공간은 현재 존재하지 않는 경우는 IllegalStateException를 throw ...
반환 :true
(에 의해 지정된 하는 Collection.add (E) )
예외 :IllegalStateException
- 요소가 용량 제한이 원인으로이 시점에서 추가 할 수없는 경우 ...
용량 제한을 위반하지 않고 즉시 가능한 경우 지정된 요소를이 큐에 삽입합니다. 용량 제한 큐를 사용하는 경우,이 방법은 예외를 발생 요소의 삽입에 실패 할 수있는, (E)을 첨가하는 것은 일반적으로 바람직하다 ..
결과 :true
요소가 다른, 큐에 추가 된 경우false
...
선언 된 인터페이스로 구현해야하므로 두 메소드가 모두 존재합니다.
PriorityQueue는 바인드되지 않기 때문에 (javadocs : " 우선 순위 힙을 기반으로하는 바인드 되지 않은 우선 순위 큐 ..."에 명시되어 있음 ), 위에서 언급 한 API 디자이너의 환경 설정은 적용되지 않습니다. 이는 특정 사용 상황에서 자신의 요구에 더 잘 맞는 방법을 선택하는 것이 프로그래머의 재량에 달려 있음을 의미합니다.