"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 > Introdução aos arrays em Java

Introdução aos arrays em Java

Publicado em 2024-11-07
Navegar:502

Introduction to Arrays in Java

A programação geralmente envolve o gerenciamento e a manipulação de grandes conjuntos de dados, para os quais estruturas de dados eficientes e eficazes são cruciais. Matrizes são uma estrutura de dados fundamental na ciência da computação e fornecem um meio de armazenar uma sequência de tamanho fixo de elementos do mesmo tipo. Neste blog, faremos uma jornada aprofundada pelos arrays em Java: entendendo o que são, sua sintaxe, como operar neles e seu gerenciamento de memória.

Por que precisamos de matrizes?

Ao trabalhar com variáveis ​​em Java, você pode declarar e inicializar cada uma individualmente, como:

java
int a = 19;
String name = "John Doe";

No entanto, essa abordagem se torna ineficiente se você precisar lidar com vários valores do mesmo tipo. Por exemplo, se você armazenasse vários números ou nomes de rolos, codificar cada valor não seria prático. Matrizes são úteis porque permitem armazenar uma coleção de valores com eficiência. Por exemplo, se você precisar armazenar cinco números de rolos, poderá utilizar matrizes.

O que são matrizes?

Um array é essencialmente uma coleção de itens de dados do mesmo tipo. Matrizes podem armazenar tipos de dados primitivos como inteiros, flutuantes e caracteres, bem como objetos. Por exemplo:

int[] rollNumbers = new int[5];
String[] names = {"Alice", "Bob", "Charlie"};

Sintaxe de matrizes

A sintaxe para declarar um array em Java é simples:

dataType[] arrayName = new dataType[size];

Por exemplo, para criar uma matriz de cinco inteiros:

int[] rollNumbers = new int[5];

Alternativamente, você pode declarar e inicializar um array em uma única linha:

int[] rollNumbers = {23, 55, 9, 18, 45};

Características das matrizes

Elementos Homogêneos

Em um array, todos os elementos devem ser do mesmo tipo. Você não pode misturar tipos em um único array; por exemplo:

int[] nums = {1, 2, "three"}; // Will cause a compile-time error

Tamanho Fixo

Depois que um array é criado, seu tamanho é fixo. Você não pode expandir ou diminuir seu tamanho. Essa restrição muitas vezes pode levar à seleção de outras estruturas de dados, como ArrayList, para requisitos de dados mais dinâmicos.

Gerenciamento de memória interna

Matrizes em Java consistem em:

  • Stack Memory: Armazena a variável de referência do array.
  • Memória Heap: Armazena o objeto array real e seus elementos.

Quando você declara um array, a referência é criada na memória da pilha e o objeto do array é armazenado na memória heap.

Alocação de memória

Existem dois estágios críticos na alocação de memória de um array:

  1. Declaração: A variável de referência é criada, mas não aponta para lugar nenhum.
  2. Inicialização: A variável de referência aponta para o objeto de matriz real no heap, que contém os elementos.

Por exemplo:

int[] rollNumbers; // Declaration
rollNumbers = new int[5]; // Initialization

Alocação dinâmica de memória

Java realiza alocação dinâmica de memória, ou seja, em tempo de execução, ele aloca memória conforme necessário, tornando-o eficiente no gerenciamento de memória.

Entrada e saída em matrizes

Recebendo informações

Para preencher um array com a entrada do usuário, você pode usar um loop junto com um Scanner para ler a entrada do console.

Scanner scanner = new Scanner(System.in);
int[] arr = new int[5];
for (int i = 0; i 



Imprimindo matrizes

Você pode imprimir matrizes usando loops ou o método utilitário Arrays.toString() para uma saída mais legível.

for (int i = 0; i 



ou

System.out.println(Arrays.toString(arr));

Matrizes multidimensionais

Matrizes bidimensionais, ou matrizes, são matrizes de matrizes. A sintaxe para um array 2D é assim:

int[][] matrix = new int[3][3];

Exemplo

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

Para uma entrada dinâmica de elementos em uma matriz 2D, são usados ​​loops aninhados.

ArrayList: uma alternativa dinâmica

Arrays em Java são de tamanho fixo, levando a ineficiências quando o número de elementos é desconhecido em tempo de compilação. Essa limitação pode ser superada usando a classe ArrayList, parte do Java Collections Framework.

Usando ArrayList

A classe ArrayList fornece redimensionamento dinâmico. Aqui está a sintaxe para criar um ArrayList:

ArrayList numbers = new ArrayList();

Você pode adicionar e manipular elementos dinamicamente:

numbers.add(1);
numbers.add(2);
numbers.add(3);
System.out.println(numbers); // Output: [1, 2, 3]

numbers.set(1, 10); // Change element at index 1
System.out.println(numbers); // Output: [1, 10, 3]

numbers.remove(0); // Remove element at index 0
System.out.println(numbers); // Output: [10, 3]

boolean contains = numbers.contains(10); // Check if the list contains 10
System.out.println(contains); // Output: true

Funcionamento interno de ArrayList

Internamente, ArrayList usa arrays dinâmicos com capacidade inicial fixa. Quando esta capacidade se esgota, um novo array com maior capacidade é criado e os elementos existentes são copiados. Este processo garante que ArrayList possa crescer dinamicamente à medida que os elementos são adicionados.

Operações comuns de array

Encontrando o máximo de elementos

Para encontrar o elemento máximo em uma matriz, percorra a matriz e acompanhe o valor mais alto:

int max = arr[0];
for (int i = 1; i  max) {
        max = arr[i];
    }
}
System.out.println("Maximum value: "   max);

Invertendo um array

Para reverter um array, use uma técnica de dois ponteiros:

public static void reverse(int[] arr) {
    int start = 0;
    int end = arr.length - 1;
    while (start 



Chamando a função reversa:

int[] arr = {1, 2, 3, 4, 5};
reverse(arr);
System.out.println(Arrays.toString(arr)); // Output: [5, 4, 3, 2, 1]

Conclusão

Arrays são uma estrutura de dados crítica em Java, permitindo o armazenamento e manipulação de conjuntos de dados de forma eficiente. Embora de tamanho fixo, os arrays são poderosos e versáteis ao lidar com tipos de dados homogêneos. Para necessidades dinâmicas de dados, ArrayList oferece flexibilidade adicional, permitindo crescimento arbitrário de tamanho. A compreensão dessas estruturas e de suas operações estabelece as bases para uma programação e gerenciamento de dados mais avançados. Além disso, praticar operações de array e compreender o gerenciamento de memória subjacente ajuda a escrever código mais eficiente e otimizado.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/bhaweshchaudhary/introduction-to-arrays-in-java-17gg?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
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