Почему PriorityQueue в Java не может иметь initialCapacity 0?

Я использую PriorityQueue для частичной сортировки некоторых данных. В частности, это код:

Collection<Data> data = ...;
PriorityQueue<Data> queue = new PriorityQueue<Data>(data.size(), dataComparator);
queue.addAll(data);
// iterate over queue with remove() until we have as much data as we need or until queue is empty

К сожалению, когда коллекция data пуста, код не работает, потому что PriorityQueue нельзя передать ноль в качестве initialCapacity. Каковы причины этого дизайнерского решения? Почему не может быть нулевого размера PriorityQueue ?

UPD: Я знаю, как обойти это. Я бы хотел чтобы узнать, почему PriorityQueue не включает в себя этот max (1, n) код - есть ли какие-то причины или это просто плохой дизайн API?

5
задан Justin K 31 August 2010 в 13:45
поделиться