Size: a a a

2020 December 09

V

Vladimir in learn.java
Почему CopyOnWriteArrayList add O(n), Это ошибка или я что то не понимаю)?
источник

g

guga in learn.java
нет не ошибка, ответ в названии
источник

g

guga in learn.java
когда ты добавляешь элемент, он тебе создает новую копию твоего листа
источник

V

Vladimir in learn.java
ну да, но это же не зависит от размера массива
источник

V

Vladimir in learn.java
это какое то константное количество операций - заблокировать - скопировать - изменить - присвоить копию в переменную
источник

DS

Dmitriy Shilnikov in learn.java
Vladimir
ну да, но это же не зависит от размера массива
Ну есть, наверно, разница, скопировать массив на 10 элементов, или на миллион элементов
источник

V

Vladimir in learn.java
ну я понял что вы имеете ввиду, но как то не логично для меня это.
источник

V

Vladimir in learn.java
операция то одна "скопировать массив" и она не выполнится больше или меньше раз, в зависимости от размера
источник

g

guga in learn.java
Vladimir
операция то одна "скопировать массив" и она не выполнится больше или меньше раз, в зависимости от размера
окей, а операция удалить из аррей листа, почему тогда не константная?
источник

DS

Dmitriy Shilnikov in learn.java
Vladimir
операция то одна "скопировать массив" и она не выполнится больше или меньше раз, в зависимости от размера
Ну это какая-то слишком большая операция ))) Она сама состоит из гораздо более маленьких операций, типа "скопировать элемент 0", "скопировать элемент 1" и т.д.
источник

V

Vladimir in learn.java
Dmitriy Shilnikov
Ну это какая-то слишком большая операция ))) Она сама состоит из гораздо более маленьких операций, типа "скопировать элемент 0", "скопировать элемент 1" и т.д.
не, там же System.arrayCopy() операция супермена
источник

g

guga in learn.java
Vladimir
не, там же System.arrayCopy() операция супермена
хм, есть какая-то магия в этой операции?
источник

DS

Dmitriy Shilnikov in learn.java
Vladimir
не, там же System.arrayCopy() операция супермена
Ну внутри-то ей один фиг копировать элементы приходится. И чем больше элементов, тем дольше она работать будет.
источник

V

Vladimir in learn.java
guga
хм, есть какая-то магия в этой операции?
да, она native. Вроде как сильно оптимизирована
источник

F

Fortune's Desire in learn.java
Vladimir
не, там же System.arrayCopy() операция супермена
Там просто кусок памяти копируется?
источник

g

guga in learn.java
Vladimir
да, она native. Вроде как сильно оптимизирована
так-с, скажи, что для тебя означает O нотация?
источник

V

Vladimir in learn.java
guga
так-с, скажи, что для тебя означает O нотация?
Количесво операций, которое требуется для выполнения метода
источник

V

Vladimir in learn.java
O(n) - сколько элементов , столько операций. O(1) - всегда одно и то же количесво
источник

F

Fortune's Desire in learn.java
Vladimir
O(n) - сколько элементов , столько операций. O(1) - всегда одно и то же количесво
Элементов чего
источник

V

Vladimir in learn.java
Fortune's Desire
Элементов чего
размер коллекции
источник