Middle
Java 8-де ассоциативдүү массивдер (Map коллекциясы) менен иштөө үчүн кандай кошумча ыкмалар пайда болду?
sobes.tech AI
AIден жооп
forEach(BiConsumer<? super K, ? super V> action): Mapтеги ар бир ачкыч-баа жупу үчүн белгиленгенaction-ды аткарат.replaceAll(BiFunction<? super K, ? super V, ? extends V> function): Mapтеги ар бир бааныfunctionколдонуу менен алмаштырат, анын ичинде ачкыч жана учурдагы баа.compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction): белгилүү ачкыч үчүн маппингти эсептөө аракетин жасайт, кайра маппинг функциясын колдонуу менен.computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction): эгер белгилүү ачкыч дагы байланыша элек болсо (жеnullменен байланышкан болсо), анын баасын белгилүү маппинг функциясы аркылуу эсептейт жана эгер алnullэмес болсо, аны Mapке кошот.computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction): эгер белгилүү ачкыч азыркы учурда баага байланышкан болсо (null эмес), кайра маппинг функциясын колдонуп жаңы көрсөтмө эсептейт.merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction): эгер белгилүү ачкыч дагы байланыша элек болсо, аны белгилүү баага байланыштырат. Эгер байланышкан болсо, учурдагы баага жана берилген баага кайра маппинг функциясын колдонуп алмаштырат.putIfAbsent(K key, V value): эгер белгилүү ачкыч дагы байланыша элек болсо (жеnullменен), аны берилген баага байланыштырып,nullкайтарат, эгер башкача болсо, азыркы байланышкан бааны кайтарат.remove(Object key, Object value): белгилүү ачкыч үчүн жазууну алып салат, эгер ал учурда берилген баага байланышкан болсо.replace(K key, V oldValue, V newValue): белгилүү ачкыч үчүн жазууну алмаштырат, эгер ал учурдаoldValueменен байланышкан болсо.replace(K key, V value): белгилүү ачкыч үчүн жазууну алмаштырат, эгер ал учурда байланыша турган болсо.
Бул ыкмалар Map менен иштөөнү жеңилдетет, атомардык операцияларды жүргүзүүгө жана ламбда билдирүүлөрүн колдонууга мүмкүндүк берет, бул ишти көбүрөөк ийкемдүү кылат.