Middle
Kokie papildomi metodai atsitiktinių masyvų (Map kolekcijos) darbui pasirodė Java 8?
sobes.tech AI
Atsakymas iš AI
forEach(BiConsumer<? super K, ? super V> action): Atlieka nurodytąactionkiekvienai raktų-vertės porai Map.replaceAll(BiFunction<? super K, ? super V, ? extends V> function): Pakeičia kiekvieną Map reikšmę rezultatu, taikantfunctionpagal jos raktą ir dabartinę reikšmę.compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction): bando apskaičiuoti nurodyto rakto žemėlapį naudodamas perrašymo funkciją.computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction): Jei nurodytas raktas dar nėra susietas su reikšme (arba susietas sunull), bando apskaičiuoti jo reikšmę naudodamas nurodytą žemėlapių funkciją ir, jei ji nėranull, įrašo ją į Map.computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction): Jei nurodytas raktas jau susietas su reikšme (nenull), bando apskaičiuoti naują žemėlapį naudodamas nurodytą perrašymo funkciją.merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction): Jei nurodytas raktas dar nėra susietas su reikšme, susieja jį su nurodyta reikšme. Jei jau susietas, pakeičia susietą reikšmę rezultatu, gautu taikant perrašymo funkciją prie dabartinės ir nurodytos reikšmės.putIfAbsent(K key, V value): Jei nurodytas raktas dar nėra susietas su reikšme (arba susietas sunull), susieja jį su nurodyta reikšme ir grąžinanull, kitaip grąžina esamą susietą reikšmę.remove(Object key, Object value): Pašalina įrašą pagal nurodytą raktą, tik jei jis šiuo metu susietas su nurodyta reikšme.replace(K key, V oldValue, V newValue): Pakeičia įrašą pagal nurodytą raktą, tik jei jis šiuo metu susietas suoldValue.replace(K key, V value): Pakeičia įrašą pagal nurodytą raktą, tik jei jis šiuo metu susietas su reikšme.
Šie metodai palengvina darbą su Map, leidžia atlikti atominius veiksmus ir naudoti lambda išraiškas lankstesniam elementų apdorojimui.