Список, Linkedlist, Arraylist в Java

#java #collections #linked-list

#java #Коллекции #связанный список

Вопрос:

Что касается списка, Linkedlist и Arraylist, какой из них является односторонним списком, а какой — двусвязным списком? И как мы могли бы это изменить?

Комментарии:

1. Список — это интерфейс. Вы уверены, что проверили API?

Ответ №1:

Если вам нужен односвязный список, вам придется написать его самостоятельно.

Я должен указать, что создать единый связанный список, который реализует java.util.List , непросто. Для этого требуется, чтобы у вас был ListIterator<E> , и часть ListIterator спецификации заключается в том, что вы можете перемещаться в любом направлении с помощью методов hasPrevious , previous и previousIndex. Таким образом, сохранить его одновременно эффективным и верным мантре single linked list было бы очень сложно.

Ответ №2:

Вы можете изменить любую коллекцию, используя Collections.reverse(..) . LinkedList (и любой Deque ) имеет descendingIterator()