Удивительное рядом - знание JCF
ru_java — 30.09.2010 1. Все мы знаем из javadoc, что ArrayList сделан на базе массива, а LinkedList на базе списка, т.е.в ArrayList доступ к произвольному элементу - константа, но добавление требует пересоздание массива,
а у LinkedList добавление константа т.к. просто добавить элемент к списку.
Это очевидно.
Наткнулся на статью: http://www.briandupreez.net/2010/05/arraylist-vs-linkedlist.html
Добавил разогрев к примеру автора и тем не менее: простое добавление в изначально пустые списки:
грею 30000 итераций каждый, результат:
ArrayList: 662 ms, size = 20000000
LinkedList: 7238 ms, size = 20000000
Вот тебе и LinkedList!
PS: чтобы пресечь нездоровый ажиотаж (очевидно если прочитать или задуматься):
если изменить в примере list.add(bob) на list.add(0, bob) LinkedList оправдывает своё назначение (количество итераций пришлось драматически уменьшить)
ArrayList: 20738 ms, size = 200000
LinkedList: 22 ms, size = 200000
2. Hashtable vs HashMap
http://www.briandupreez.net/2010/05/hashtable-vs-hashmap.html
Субъективно Hashtable медленнее из-за синхронизации.
Но результат иной.
|
</> |