작성
·
140
답변 1
2
안녕하세요. 인프린님, 공식 서포터즈 코즈위버입니다.
add() / remove() 는 동작을 수행할 수 없을 때 에외를 던지고, offer() / poll()은 동작을 수행할 수 없을 떄 boolean 값을 반환합니다. 이는 큐에 데이터를 담거나 꺼내는 행위가 실패할 수도 있음을 전제하는가 아닌가에 따라 다르게 사용합니다.
가령 큐의 크기에 특별히 제한을 두지 않는 경우(큐는 무제한으로 늘어날 수 있다고 전제한 것) add 를 사용하는 것이 적절합니다. 큐에 데이터를 담을 수 없다면 개발자가 생각하지 못한 예외상황이 발생한것입니다.
한편 큐의 크기를 10개로 제한하는 상황이라면 큐에 데이터를 추가하는 행위는 언제든지 실패할 수 있으며(10개가 꽉 찬 경우) 이는 예외상황이라고 보기 어렵습니다. 이럴 때는 offer 를 사용하는 것이 적절합니다. 개발자가 예상하고 있는 상황이기 때문입니다.
감사합니다.