Каков наилучший вариант для инициализации размера связанных списков в конструкторе с указанной емкостью? - PullRequest
0 голосов
/ 16 апреля 2020
public class MyStack {

  private LinkedList<Integer> stack;

  public MyStack(int capacity){
      stack = new LinkedList<Integer>(capacity);
  }
}

1 Ответ

1 голос
/ 16 апреля 2020

A емкость для ArrayList - подсказка, чтобы сказать, насколько велика первоначальная резервная копия. Емкость не ограничивает, насколько велико будет ArrayList.

A LinkedList не имеет резервного массива или чего-либо подобного. Предварительного выделения связанного списка не существует, поэтому емкость LinkedList является бессмысленным понятием.

Если вы ищете способ ограничить размер списка, прочитайте Определить фиксированный список размеров в Java.


Это домашняя работа по реализации стека. Нам разрешено использовать Array или Linked-list, но профессор считает использование емкости обязательным. Я хочу вернуться к Linked-list, но не смог инициализироваться с емкостью.

Трудно понять, что подразумевается под этим.

Одна из возможных интерпретаций заключается в том, что ваш стек API должен поддерживать параметр емкость в смысле ArrayList. Для реализации, использующей связанные списки, вы просто проигнорируете этот параметр.

Вторая интерпретация заключается в том, что вас просят реализовать стек с ограниченным размером. В этом случае ваш профессор может использовать слово «емкость» в другом значении по сравнению с тем, что означает «емкость» с ArrayList.

Если вы не можете решить, что требуется, я бы посоветовал вам спросить ваш профессор для разъяснений.

...