Sobes.tech
Middle

Que métodos adicionais para trabalhar com arrays associativos (coleção Map) surgiram no Java 8?

sobes.tech IA

Resposta da IA

  1. forEach(BiConsumer<? super K, ? super V> action): Executa a ação especificada para cada par chave-valor no Map.
  2. replaceAll(BiFunction<? super K, ? super V, ? extends V> function): Substitui cada valor no Map pelo resultado da aplicação da função à sua chave e valor atual.
  3. compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction): Tenta calcular um mapeamento para a chave especificada, usando a função de re-mapeamento dada.
  4. computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction): Se a chave especificada ainda não estiver associada a um valor (ou estiver associada a null), tenta calcular seu valor usando a função de mapeamento dada e a insere no Map se não for null.
  5. computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction): Se a chave especificada já estiver associada a um valor (não null), tenta calcular uma nova atribuição usando a função de re-mapeamento dada.
  6. merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction): Se a chave especificada ainda não estiver associada a um valor, associa-a ao valor não-null dado. Caso contrário, substitui o valor associado pelo resultado de aplicar a função de re-mapeamento ao valor atual e ao valor dado.
  7. putIfAbsent(K key, V value): Se a chave especificada ainda não estiver associada a um valor (ou estiver associada a null), associa-a ao valor dado e retorna null, caso contrário retorna o valor associado atual.
  8. remove(Object key, Object value): Remove a entrada para a chave especificada apenas se ela estiver atualmente associada ao valor especificado.
  9. replace(K key, V oldValue, V newValue): Substitui a entrada para a chave especificada apenas se ela estiver atualmente associada ao valor oldValue.
  10. replace(K key, V value): Substitui a entrada para a chave especificada apenas se ela estiver atualmente associada a um valor.

Estes métodos facilitam o trabalho com Map, permitindo realizar operações atômicas e usar expressões lambda para um processamento mais flexível dos elementos.