Что является постусловием для метода java PriorityQueue.remove(Object)?

Я смотрю на создание JML-спецификаций для метода java.util.PriorityQueue.remove(Object object). До сих пор я думал о следующем предварительном условии:

//@ requires object != null;
//@ requires this.size() > 0;

Я сейчас пытаюсь выяснить постусловие. Так что же такое поле для гарантии для этого метода? Я чувствую, что он должен включать метод size() и убедиться, что данные больше не находятся в очереди, но я не уверен, как это написать.

1 ответ

Вот код для метода из grepcode.

 public boolean remove(Object o) {
  int i = indexOf(o);
  if (i == -1)
       return false;
  else {
       removeAt(i);
       return true;
  }
}

Я бы сказал, что постусловие будет либо ложным, либо истинным в зависимости от того, присутствует ли o в очереди или нет. Я не уверен, что это то, что вы ищете.

Другие вопросы по тегам