Каким образом можно удалить первый элемент из списка в Java?

Каким образом можно эффективно ограничить количество элементов в списке до 10, удаляя старые значения при добавлении новых, без использования "костылей"?
  • 18 февраля 2024 г. 14:08
Ответы на вопрос 3
Для удаления первого элемента из списка в Java можно использовать метод remove() с указанием индекса 0:

```java
List<String> list = new ArrayList<>();
list.add("element1");
list.add("element2");
list.remove(0); // удаление первого элемента из списка
```

Для ограничения количества элементов в списке до 10, можно использовать LinkedList вместо ArrayList, так как LinkedList позволяет удалять элементы из начала списка за O(1) времени. Таким образом, при добавлении нового элемента можно проверять размер списка и удалить первый элемент, если список уже содержит 10 элементов:

```java
LinkedList<String> list = new LinkedList<>();
list.add("element1");
list.add("element2");
if (list.size() >= 10) {
    list.removeFirst(); // удаление первого элемента из LinkedList
}
``` 

Это эффективный способ ограничения списка до 10 элементов без использования дополнительных "костылей".
Я нашел очень костыльный способ, который может мне это позволить, но ищу варианты без костылей, есть мысли?

Чтение документации по интерфейсу List - это костыль или нет?
https://docs.oracle.com/javase/8/docs/api/java/uti...

remove(int index)
Removes the element at the specified position in this list (optional operation).
https://www.baeldung.com/java-ring-buffer 

И естественно есть готовые реализации, от простых в Apache Commons и Guava, до высокоэффективных и потокобезопасных, типа LMAX Disruptor.
Похожие вопросы