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 медленнее из-за синхронизации.
Но результат иной.

Oracle Certification

Guitar

vgramagin

September 9th, 2010

Тут недавно спрашивали про изменения в экзамене. Сегодня я сдавал, могу подтвердить - количество вопросов уменьшилось до 60, проходной балл - 58%. Вопросы легче, чем я ожидал - около трети на multiple choice, 5 штук на разбросать вставки по коду, остальные - single choice, причем большинство вопросов включают только "логические" ответы (без Compilation Fails или Runtime Exception).