Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Класс LinkedList и его методы



java.lang. Объект

·

· java.util. AbstractCollection<E>

·

· java.util. AbstractList <E>

·

· java.util. AbstractSequentialList <E>

·

· java.util. LinkedList <E>

· Введите Параметры:

E - тип элементов сохранен в этом наборе

Все Реализованные Интерфейсы:

Сериализуемый, Cloneable, Повторяемый <E>, Набор <E>, Двухсторонняя очередь <E>, Список <E>, Очередь <E>

public class LinkedList<E> extends AbstractSequentialList<E>implements List<E>, Deque<E>, Cloneable, Serializable

Реализация двунаправленного связанного списка List и Deque интерфейсы. Реализации все дополнительные операции списка, и разрешения все элементы (включая null).

Все операции выполняют, как мог ожидаться для двунаправленного связанного списка. Операции, которые индексируют в список, пересекут список с начала или конца, какой бы ни ближе к указанному, индексируют.

Отметьте, что эта реализация не синхронизируется. Если многократные потоки получают доступ к связанному списку одновременно, и по крайней мере один из потоков изменяет список структурно, это должно синхронизироваться внешне. (Структурная модификация является любой работой, которая добавляет или удаляет один или более элементов; просто установка значения элемента не является структурной модификацией.) Это обычно выполняется, синхронизируясь на некотором объекте, который естественно инкапсулирует список. Если никакой такой объект не существует, список должен быть "обернут", используяCollections.synchronizedList метод. Это лучше всего делается во время создания, чтобы предотвратить случайный несинхронизируемый доступ к списку:

List list = Collections.synchronizedList(new LinkedList(...));

iterators возвратился этим class iterator и listIterator методы являются сбоем быстро: если список структурно изменяется когда-либо после того, как iterator создается, всегда кроме через собственного Итерэтора remove или add методы, iterator бросит a ConcurrentModificationException. Таким образом, перед лицом параллельной модификации, iterator перестал работать быстро и чисто, вместо того, чтобы рискнуть произвольным, недетерминированным поведением в неопределенное время в будущем.

Отметьте, что поведение сбоя быстро iterator не может быть гарантировано, как, вообще говоря, невозможно сделать любые трудные гарантии в присутствии несинхронизируемой параллельной модификации. Приведите бросок iterators к сбою быстро ConcurrentModificationException на основе максимальных усилий. Поэтому, было бы неправильно записать программу, которая зависела от этого исключения для его правильности: поведение сбоя быстро iterators должно использоваться только, чтобы обнаружить ошибки.

Этот class является элементом Платформы Наборов Java.





Дата публикования: 2015-10-09; Прочитано: 597 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...