Interface Java ConcurrentMap

Neste tutorial, aprenderemos sobre a interface Java ConcurrentMap e seus métodos.

A ConcurrentMapinterface da estrutura de coleções Java fornece um mapa thread-safe. Ou seja, vários threads podem acessar o mapa de uma vez, sem afetar a consistência das entradas em um mapa.

ConcurrentMap é conhecido como mapa sincronizado.

Ele estende a interface do Mapa.

Classe que implementa ConcurrentMap

Por ConcurrentMapser uma interface, não podemos criar objetos a partir dela.

Para usar as funcionalidades da ConcurrentMapinterface, precisamos usar a classe ConcurrentHashMapque a implementa.

Como usar o ConcurrentMap?

Para usar o ConcurrentMap, devemos importar o java.util.concurrent.ConcurrentMappacote primeiro. Depois de importar o pacote, veja como podemos criar um mapa simultâneo.

 // ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap(); 

No código acima, criamos um mapa simultâneo denominado números.

Aqui,

  • Chave - um identificador único usado para associar cada elemento (valor) em um mapa
  • Valor - elementos associados por chaves em um mapa

Métodos de ConcurrentMap

A ConcurrentMapinterface inclui todos os métodos da Mapinterface. É porque Mapé a super interface da ConcurrentMapinterface.

Além de todos esses métodos, aqui estão os métodos específicos da ConcurrentMapinterface.

  • putIfAbsent () - Insere a chave / valor especificado no mapa se a chave especificada ainda não estiver associada a nenhum valor.
  • compute () - Calcula uma entrada (mapeamento de chave / valor) para a chave especificada e seu valor mapeado anteriormente.
  • computeIfAbsent () - Calcula um valor usando a função especificada para a chave especificada se a chave ainda não estiver mapeada com nenhum valor.
  • computeIfPresent () - Calcula uma nova entrada (mapeamento de chave / valor) para a chave especificada se a chave já estiver mapeada com o valor especificado.
  • forEach () - Acesse todas as entradas de um mapa e execute as ações especificadas.
  • merge () - Mescla o novo valor especificado com o valor antigo da chave especificada se a chave já estiver mapeada para um determinado valor. Se a chave ainda não estiver mapeada, o método simplesmente associa o valor especificado à nossa chave.

Para saber mais, visite Java ConcurrentMap (documentação oficial do Java).

Implementação de ConcurrentMap em ConcurrentHashMap

 import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ConcurrentHashMap; class Main ( public static void main(String() args) ( // Creating ConcurrentMap using ConcurrentHashMap ConcurrentMap numbers = new ConcurrentHashMap(); // Insert elements to map numbers.put("Two", 2); numbers.put("One", 1); numbers.put("Three", 3); System.out.println("ConcurrentMap: " + numbers); // Access the value of specified key int value = numbers.get("One"); System.out.println("Accessed Value: " + value); // Remove the value of specified key int removedValue = numbers.remove("Two"); System.out.println("Removed Value: " + removedValue); ) ) 

Resultado

 ConcurrentMap: (Um = 1, Dois = 2, Três = 3) Valor Acessado: 1 Valor Removido: 2 

Para saber mais sobre ConcurrentHashMap, visite Java ConcurrentHashMap.

Artigos interessantes...