Материал: 8 - Презентация

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Центрдистанционногообучения

Различия между ListIterator и индексом

•У ListIterator есть методы nextIndex и previousIndex,

которые возвращают значения индексов, связанные с объектами, которые будут возвращаться при вызове методов next или previous

•У класса LinkedList есть метод ListIterator (int индекс)

•возвращает ListIterator, чей вызов next возвращает элемент на следующей позиции индекса

online.mirea.ru

Центрдистанционногообучения

Производительность ArrayList и LinkedList

LinkedList обеспечивает лучшую производительность в следующих случаях:

1.При операциях добавления/удаления элементов в начале списка по индексу.

2.При операциях добавления/удаления элементов внутри списка по итератору (при условии, что этот итератор был каким-то образом получен заранее).

3.При доступе к первому/последнему элементу списка (getFirst() / getLast() / removeFirst() / removeLast() и т.д.)

Во многих остальных случаях ArrayList показывает более высокую производительность.

online.mirea.ru

Центрдистанционногообучения

Производительность ArrayList и LinkedList

•LinkedList надо что-то вставить в середину в какую-то

позицию Х, то он будет прямо с начала по ссылкам искать эту позицию. С LinkedList надо использовать, к примеру, ListIterator, который умеет вставлять в середину списка по индексу (поэтому в LinkedList вставка на самом деле будет за мизерное постоянное время).

Пример:

ListIterator<Integer> iter = list.listIterator(inputIndex); iter.add(new Integer(123));

Поэтому пока ArrayList будет перемещать в памяти элементы для вставки, LinkedList давно уже будет сидеть и спокойно курить в сторонке

online.mirea.ru

Центрдистанционногообучения

Производительность ArrayList и LinkedList

•Например, такая ситуация, в ArrayList и в LinkedList объемом

1 000 000 элементов надо сделать 100 вставок в середину по индексу 500 000.

1)Как себя будет вести ArrayList: он 100 раз будет перемещать правую половину массива!

2)А LinkedList доберется за 1 раз до индекса 500 000 и сделает 100 "мгновенных" вставок.

Вывод: выигрыш у LinkedList будет огромный!

•P.S. Конечно, можно придраться, что мол давайте сделаем массив на 100 нужных для вставки элементов и за 1 вставку засунем в середину того ArrayList. Но вот на практике так не всегда везет и приходится делать 100 вставок!

online.mirea.ru

Центрдистанционногообучения

online.mirea.ru

Источник: https://studfile.net/preview/16403817/