"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como converter int[] em Integer[] para uso como chaves de mapa em Java?

Como converter int[] em Integer[] para uso como chaves de mapa em Java?

Publicado em 2024-11-03
Navegar:655

How to Convert int[] to Integer[] for Use as Map Keys in Java?

Convertendo int[] em inteiro[] para chaves de mapa em Java: um guia abrangente

Em Java, as chaves de mapa exigem igualdade de referência, o que não pode ser alcançado com tipos primitivos como int[]. Ao trabalhar com arrays int[] e precisar usá-los como chaves em um Mapa, é necessário convertê-los para um tipo de objeto adequado. Vamos explorar várias opções para essa conversão.

Método 1: Arrays.stream().boxed().toArray()

Java 8 introduziu um método conciso para converter int[] em Integer[ ] usando API de fluxo:

int[] data = {1,2,3,4,5,6,7,8,9,10};

Integer[] primitiveToBoxed = Arrays
        .stream(data)
        .boxed()
        .toArray(Integer[]::new);

Método 2: IntStream.of().boxed().toArray()

Uma abordagem semelhante usando IntStream:

Integer[] primitiveToBoxed = IntStream
        .of(data)
        .boxed()
        .toArray(Integer[]::new);

Considerações para chaves de mapa

Embora Integer[] possa servir como uma chave, pode não ser ideal devido a:

  • Sobrecarga: Número inteiro armazena em cache valores entre -128 a 127, levando a possíveis colisões em conjuntos de dados maiores.
  • Sobrecarga de desempenho: Número inteiro[] cria novo número inteiro objetos para cada valor int, introduzindo sobrecarga adicional.

Opções alternativas

Para melhor desempenho e exclusividade da chave, considere usar:

  • Personalizado Objetos: Crie uma classe personalizada encapsulando int[] e implementando hashCode() e equals() para pesquisa eficiente.
  • Longs: Como valores longos podem representar números inteiros, eles podem ser usadas como chaves em mapas com melhor desempenho que Integer[].
  • Bibliotecas externas: Procure na Apache Commons Collections Library ou no Google Guava coleções especializadas que lidam com tipos primitivos de maneira eficiente.

Lembre-se de que a melhor abordagem depende do tamanho do conjunto de dados e dos requisitos de desempenho. A escolha da técnica apropriada permite rastrear com eficiência a frequência das combinações int[] em seu conjunto de dados.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3