Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Java EnumMap

Java EnumMap


Neste tutorial, aprenderemos sobre a classe Java EnumMap e suas operações com a ajuda de exemplos.

O EnumMap A classe da estrutura de coleções Java fornece uma implementação de mapa para elementos de uma enumeração.

Em EnumMap , os elementos enum são usados ​​como chaves . Ele implementa a interface Map.



Antes de aprendermos sobre EnumMap , certifique-se de saber sobre o Java Enums.

Criando um EnumMap


Para criar um mapa enum, devemos importar o java.util.EnumMap pacote primeiro. Depois de importar o pacote, veja como podemos criar mapas enum em Java.
enum Size {
    SMALL, MEDIUM, LARGE, EXTRALARGE
}

EnumMap<Size, Integer> sizes = new EnumMap<>(Size.class);

No exemplo acima, criamos um mapa enum chamado sizes .

Aqui,

Métodos de EnumMap


O EnumMap class fornece métodos que nos permitem executar vários elementos nos mapas enum.

Inserir Elementos no EnumMap


Por exemplo,
import java.util.EnumMap;

class Main {

    enum Size {
        SMALL, MEDIUM, LARGE, EXTRALARGE
    }
    public static void main(String[] args) {

        // Creating an EnumMap of the Size enum
        EnumMap<Size, Integer> sizes1 = new EnumMap<>(Size.class);

        // Using the put() Method
        sizes1.put(Size.SMALL, 28);
        sizes1.put(Size.MEDIUM, 32);
        System.out.println("EnumMap1: " + sizes1);

        EnumMap<Size, Integer> sizes2 = new EnumMap<>(Size.class);

        // Using the putAll() Method
        sizes2.putAll(sizes1);
        sizes2.put(Size.LARGE, 36);
        System.out.println("EnumMap2: " + sizes2);
    }
}

Saída
EnumMap1: {SMALL=28, MEDIUM=32}
EnumMap2: {SMALL=28, MEDIUM=32, LARGE=36}

No exemplo acima, usamos o putAll() método para inserir todos os elementos de um mapa enum sizes1 para um mapa enum de sizes2 .

Também é possível inserir elementos de outros mapas como HashMap , TreeMap , etc. para um mapa enum usando putAll() . No entanto, todos os mapas devem ser do mesmo tipo de enumeração.

Acessar elementos do EnumMap


1. Usando entrySet(), keySet() e values()

Por exemplo,
import java.util.EnumMap;

class Main {

    enum Size {
        SMALL, MEDIUM, LARGE, EXTRALARGE
    }
    public static void main(String[] args) {

        // Creating an EnumMap of the Size enum
        EnumMap<Size, Integer> sizes = new EnumMap<>(Size.class);
        sizes.put(Size.SMALL, 28);
        sizes.put(Size.MEDIUM, 32);
        sizes.put(Size.LARGE, 36);
        sizes.put(Size.EXTRALARGE, 40);
        System.out.println("EnumMap: " + sizes);

        // Using the entrySet() Method
        System.out.println("Key/Value mappings: " + sizes.entrySet());

        // Using the keySet() Method
        System.out.println("Keys: " + sizes.keySet());

        // Using the values() Method
        System.out.println("Values: " + sizes.values());
    }
}

Saída
EnumMap: {SMALL=28, MEDIUM=32, LARGE=36, EXTRALARGE=40}
Key/Value mappings: [SMALL=28, MEDIUM=32, LARGE=36, EXTRALARGE=40]
Keys: [SMALL, MEDIUM, LARGE, EXTRALARGE]
Values: [28, 32, 36, 40]

2. Usando o método get()



O get() O método retorna o valor associado à chave especificada. Ele retorna null se a chave especificada não for encontrada.

Por exemplo,
import java.util.EnumMap;

class Main {

    enum Size {
        SMALL, MEDIUM, LARGE, EXTRALARGE
    }
    public static void main(String[] args) {

        // Creating an EnumMap of the Size enum
        EnumMap<Size, Integer> sizes = new EnumMap<>(Size.class);
        sizes.put(Size.SMALL, 28);
        sizes.put(Size.MEDIUM, 32);
        sizes.put(Size.LARGE, 36);
        sizes.put(Size.EXTRALARGE, 40);
        System.out.println("EnumMap: " + sizes);

        // Using the get() Method
        int value = sizes.get(Size.MEDIUM);
        System.out.println("Value of MEDIUM: " + value);
    }
}

Saída
EnumMap: {SMALL=28, MEDIUM=32, LARGE=36, EXTRALARGE=40}
Value of MEDIUM: 32

Remover elementos do EnumMap


Por exemplo,
import java.util.EnumMap;

class Main {

    enum Size {
        SMALL, MEDIUM, LARGE, EXTRALARGE
    }
    public static void main(String[] args) {

        // Creating an EnumMap of the Size enum
        EnumMap<Size, Integer> sizes = new EnumMap<>(Size.class);
        sizes.put(Size.SMALL, 28);
        sizes.put(Size.MEDIUM, 32);
        sizes.put(Size.LARGE, 36);
        sizes.put(Size.EXTRALARGE, 40);
        System.out.println("EnumMap: " + sizes);

        // Using the remove() Method
        int value = sizes.remove(Size.MEDIUM);
        System.out.println("Removed Value: " + value);

        boolean result = sizes.remove(Size.SMALL, 28);
        System.out.println("Is the entry {SMALL=28} removed? " + result);

        System.out.println("Updated EnumMap: " + sizes);
    }
}

Saída
EnumMap: {SMALL=28, MEDIUM=32, LARGE=36, EXTRALARGE=40}
Removed Value: 32
Is the entry {SMALL=28} removed? True
Updated EnumMap: {LARGE=36, EXTRALARGE=40}

Substituir elementos do EnumMap

import java.util.EnumMap;

class Main {

    enum Size {
        SMALL, MEDIUM, LARGE, EXTRALARGE
    }
    public static void main(String[] args) {

        // Creating an EnumMap of the Size enum
        EnumMap<Size, Integer> sizes = new EnumMap<>(Size.class);
        sizes.put(Size.SMALL, 28);
        sizes.put(Size.MEDIUM, 32);
        sizes.put(Size.LARGE, 36);
        sizes.put(Size.EXTRALARGE, 40);
        System.out.println("EnumMap: " + sizes);

        // Using the replace() Method
        sizes.replace(Size.MEDIUM, 30);
        sizes.replace(Size.LARGE, 36, 34);
        System.out.println("EnumMap using replace(): " + sizes);

        // Using the replaceAll() Method
        sizes.replaceAll((key, oldValue) -> oldValue + 3);
        System.out.println("EnumMap using replaceAll(): " + sizes);
    }
}

Saída
EnumMap: {SMALL=28, MEDIUM=32, LARGE=36, EXTRALARGE=40}
EnumMap using replace(): {SMALL=28, MEDIUM=30, LARGE=34, EXTRALARGE=40}
EnumMap using replaceAll(): {SMALL=31, MEDIUM=33, LARGE=37, EXTRALARGE=43}

No programa acima, observe a declaração
sizes.replaceAll((key, oldValue) -> oldValue + 3);

Aqui, o método acessa todas as entradas do mapa. Em seguida, ele substitui todos os valores pelos novos valores fornecidos pelas expressões lambda.

Outros métodos

Método Descrição
clone() Cria uma cópia do EnumMap
containsKey() Pesquisa o EnumMap para a chave especificada e retorna um resultado booleano
containsValue() Pesquisa o EnumMap para o valor especificado e retorna um resultado booleano
size() Retorna o tamanho do EnumMap
clear() Remove todas as entradas do EnumMap

EnumSet vs. EnumMap


Tanto o EnumSet quanto o EnumMap A classe fornece estruturas de dados para armazenar valores de enumeração. No entanto, existem algumas diferenças importantes entre eles.

Interfaces clonáveis ​​e serializáveis


O EnumMap classe também implementa Cloneable e Serializable interfaces.

Interface Clonável

Ele permite que o EnumMap class para fazer uma cópia das instâncias da classe.

Interface serializável

Sempre que os objetos Java precisam ser transmitidos por uma rede, os objetos precisam ser convertidos em bits ou bytes. Isso ocorre porque os objetos Java não podem ser transmitidos pela rede.

O Serializable interface permite que as classes sejam serializadas. Isso significa que objetos das classes que implementam Serializable podem ser convertidos em bits ou bytes.

Java

  1. C enums
  2. Operadores Java
  3. Comentários Java
  4. Java para cada loop
  5. Strings Java
  6. Interface Java
  7. Classe anônima Java
  8. Enumerações Java
  9. Construtor de enumeração Java
  10. Java enum Strings