ru_java, posts by tag: puzzle - LiveJournal (original) (raw)
Удивительное рядом - знание JCF
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 медленнее из-за синхронизации.
Но результат иной.
September 9th, 2010
Тут недавно спрашивали про изменения в экзамене. Сегодня я сдавал, могу подтвердить - количество вопросов уменьшилось до 60, проходной балл - 58%. Вопросы легче, чем я ожидал - около трети на multiple choice, 5 штук на разбросать вставки по коду, остальные - single choice, причем большинство вопросов включают только "логические" ответы (без Compilation Fails или Runtime Exception).