Size: a a a

Scala User Group

2020 December 13

R

RAFIZ in Scala User Group
Oleg ℕizhnik
mutable.Set - это обычная хеш таблица, а не HAMT
а если я хочу остаться в неизменяемых коллекциях и вообще скала-стиле?или это бессмысленно?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
RAFIZ
а если я хочу остаться в неизменяемых коллекциях и вообще скала-стиле?или это бессмысленно?
а элементы какого типа?
источник

R

RAFIZ in Scala User Group
ну типа неизменяемая мапа может мне за константное время сказать есть элемент в ней или нет (элементы помещать в ключи), неужели нет НЕмапы, которая может такой же перформанс?
источник

R

RAFIZ in Scala User Group
Oleg ℕizhnik
а элементы какого типа?
инты
источник

R

RAFIZ in Scala User Group
Oleg ℕizhnik
а элементы какого типа?
вы хотели услышать чары?тогда использовать массив обычный типа?
источник

R

RAFIZ in Scala User Group
RAFIZ
вы хотели услышать чары?тогда использовать массив обычный типа?
или вообще 32 бита использовать и по биту на символ выделять. но тут не то
источник

Oℕ

Oleg ℕizhnik in Scala User Group
RAFIZ
инты
встроенной такой нет, можете сделать массив массивов массивов БитСетов, где слово массив трактовать как ArraySeq
источник

Oℕ

Oleg ℕizhnik in Scala User Group
но TrieMap примерно так же будет работать
источник

Oℕ

Oleg ℕizhnik in Scala User Group
используйте Set
источник

R

RAFIZ in Scala User Group
Oleg ℕizhnik
используйте Set
мьютабл
источник

Oℕ

Oleg ℕizhnik in Scala User Group
RAFIZ
мьютабл
иммьютабл
источник

R

RAFIZ in Scala User Group
а. не не. я хочу за О(1) решить. тут платформа оценивает))нужно оптимальное
источник

λ

λoλdog in Scala User Group
источник

Oℕ

Oleg ℕizhnik in Scala User Group
некоторые вообще говорят, что он O(1), это спорный момент, просто там константный множитель 32 / 5 = log (bitlen(Int)) / log(329
источник

R

RAFIZ in Scala User Group
придётся, как вы выше сказали, mutable.Set заюзать
источник

R

RAFIZ in Scala User Group
Oleg ℕizhnik
некоторые вообще говорят, что он O(1), это спорный момент, просто там константный множитель 32 / 5 = log (bitlen(Int)) / log(329
ну там да. там если вподкапот посмотреть, можно понять. просто мне лень, поэтому сюда написал. дерево если там в реализации, то логарифм реально
источник

R

RAFIZ in Scala User Group
спасибо за ответы👍🏾
источник

Oℕ

Oleg ℕizhnik in Scala User Group
у всех персистентных коллекций деревья
источник

Oℕ

Oleg ℕizhnik in Scala User Group
поэтому только избранные операции типа добавления в начало/конец могут быть нелогарифм
источник

R

RAFIZ in Scala User Group
Oleg ℕizhnik
поэтому только избранные операции типа добавления в начало/конец могут быть нелогарифм
тут коллега выше кинул ссылку на стандартные документ (который я 100 раз видел, но почему-то в этот раз решил написать сюда) и вот что в нём нарисовано
источник