Sobes.tech
Middle

Koje dodatne metode za rad sa asocijativnim nizovima (kolekcija Map) su se pojavile u Java 8?

sobes.tech АИ

Одговор од АИ

  1. forEach(BiConsumer<? super K, ? super V> action): Izvršava zadatu akciju za svaku par ključ-vrednost u Map.
  2. replaceAll(BiFunction<? super K, ? super V, ? extends V> function): Zamenjuje svaku vrednost u Map rezultatom primene function na njen ključ i trenutnu vrednost.
  3. compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction): Pokušava da izračuna mapiranje za zadati ključ koristeći zadatu funkciju za premapiranje.
  4. computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction): Ako zadati ključ još uvek nije povezan sa vrednošću (ili je povezan sa null), pokušava da izračuna njegovu vrednost pomoću zadate funkcije za mapiranje i unese je u Map ako nije null.
  5. computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction): Ako je zadati ključ već povezan sa vrednošću (ne null), pokušava da izračuna novo mapiranje koristeći zadatu funkciju za premapiranje.
  6. merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction): Ako zadati ključ još uvek nije povezan sa vrednošću, povezuje ga sa datom ne-null vrednošću. U suprotnom, zamenjuje povezanu vrednost rezultatom primene funkcije za premapiranje na trenutnu vrednost i datu vrednost.
  7. putIfAbsent(K key, V value): Ako zadati ključ još uvek nije povezan sa vrednošću (ili je povezan sa null), povezuje ga sa datom vrednošću i vraća null, u suprotnom vraća trenutnu povezanu vrednost.
  8. remove(Object key, Object value): Uklanja zapis za zadati ključ samo ako je trenutno povezan sa zadatom vrednošću.
  9. replace(K key, V oldValue, V newValue): Zamenjuje zapis za zadati ključ samo ako je trenutno povezan sa vrednošću oldValue.
  10. replace(K key, V value): Zamenjuje zapis za zadati ključ samo ako je trenutno povezan sa nekom vrednošću.

Ove metode olakšavaju rad sa Map, omogućavajući izvođenje atomskih operacija i korišćenje lambda izraza za fleksibilniju obradu elemenata.