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

Dominando Arrays em Java: Guia Completo para Manipulação Eficiente de Dados

O Java fornece uma estrutura de dados chamada array, que armazena uma coleção sequencial de tamanho fixo de elementos do mesmo tipo. Um array é usado para armazenar uma coleção de dados, mas muitas vezes é mais útil pensar em um array como uma coleção de variáveis do mesmo tipo.

Em vez de declarar variáveis individuais, como numero0, numero1, ..., e numero99, você declara uma variável de array, como numeros, e usa numeros[0], numeros[1], ..., numeros[99] para representar variáveis individuais.

Este tutorial apresenta como declarar variáveis de array, criar arrays e processar arrays usando variáveis indexadas.

Declarando Variáveis de Array

Para usar um array em um programa, você deve declarar uma variável para referenciar o array e especificar o tipo de array que a variável pode referenciar. Aqui está a sintaxe para declarar uma variável de array:

Sintaxe

tipoDado[] nomeVariavelArray; // forma preferida
// ou
tipoDado nomeVariavelArray[]; // funciona, mas não é a forma preferida

Nota: O estilo tipoDado[] nomeVariavelArray é preferido. O estilo tipoDado nomeVariavelArray[] vem da linguagem C/C++ e foi adotado no Java para acomodar programadores C/C++.

Exemplo

Os seguintes trechos de código são exemplos desta sintaxe:

double[] minhaLista; // forma preferida
// ou
double minhaLista[]; // funciona, mas não é a forma preferida

Criando Arrays

Você pode criar um array usando o operador new com a seguinte sintaxe:

Sintaxe

nomeVariavelArray = new tipoDado[tamanhoArray];

A declaração acima faz duas coisas:

Declarar uma variável de array, criar um array e atribuir a referência do array à variável pode ser combinado em uma única instrução:

tipoDado[] nomeVariavelArray = new tipoDado[tamanhoArray];

Alternativamente, você pode criar arrays da seguinte forma:

tipoDado[] nomeVariavelArray = {valor0, valor1, ..., valork};

Os elementos do array são acessados através do índice. Os índices de array são baseados em 0; ou seja, eles começam de 0 até nomeVariavelArray.length-1.

Exemplo

A seguinte instrução declara uma variável de array, minhaLista, cria um array de 10 elementos do tipo double e atribui sua referência a minhaLista:

double[] minhaLista = new double[10];

A figura a seguir representa o array minhaLista. Aqui, minhaLista contém dez valores double e os índices vão de 0 a 9.

Dominando Arrays em Java: Guia Completo para Manipulação Eficiente de Dados

Processando Arrays

Ao processar elementos de array, frequentemente usamos o loop for ou o loop foreach (for-each), pois todos os elementos em um array são do mesmo tipo e o tamanho do array é conhecido.

Exemplo

Aqui está um exemplo completo mostrando como criar, inicializar e processar arrays:

public class TesteArray {
    public static void main(String[] args) {
        double[] minhaLista = {1.9, 2.9, 3.4, 3.5};
        
        // Imprime todos os elementos do array
        for (int i = 0; i < minhaLista.length; i++) {
            System.out.println(minhaLista[i] + " ");
        }
        
        // Somando todos os elementos
        double total = 0;
        for (int i = 0; i < minhaLista.length; i++) {
            total += minhaLista[i];
        }
        System.out.println("Total é " + total);
        
        // Encontrando o maior elemento
        double max = minhaLista[0];
        for (int i = 1; i < minhaLista.length; i++) {
            if (minhaLista[i] > max) max = minhaLista[i];
        }
        System.out.println("Máximo é " + max);
    }
}

Isso produzirá o seguinte resultado:

Saída

1.9 2.9 3.4 3.5 Total é 11.7 Máximo é 3.5

O Loop foreach

O JDK 1.5 introduziu um novo loop for conhecido como loop foreach ou loop for aprimorado, que permite percorrer o array completo sequencialmente sem usar uma variável de índice.

Exemplo

O código a seguir exibe todos os elementos no array minhaLista:

public class TesteArray {
    public static void main(String[] args) {
        double[] minhaLista = {1.9, 2.9, 3.4, 3.5};
        
        // Imprime todos os elementos do array
        for (double elemento : minhaLista) {
            System.out.println(elemento);
        }
    }
}

Isso produzirá o seguinte resultado:

Saída

1.9 2.9 3.4 3.5

Passando Arrays para Métodos

Assim como você pode passar valores de tipos primitivos para métodos, também pode passar arrays para métodos. Por exemplo, o método a seguir exibe os elementos em um array int:

Exemplo

public static void imprimirArray(int[] array) {
    for (int i = 0; i < array.length; i++) {
        System.out.print(array[i] + " ");
    }
}

Você pode invocá-lo passando um array. Por exemplo, a seguinte instrução invoca o método imprimirArray para exibir 3, 1, 2, 6, 4 e 2:

Exemplo

imprimirArray(new int[]{3, 1, 2, 6, 4, 2});

Retornando um Array de um Método

Um método também pode retornar um array. Por exemplo, o método a seguir retorna um array que é a inversão de outro array:

Exemplo

public static int[] inverter(int[] lista) {
    int[] resultado = new int[lista.length];
    for (int i = 0, j = resultado.length - 1; i < lista.length; i++, j--) {
        resultado[j] = lista[i];
    }
    return resultado;
}

A Classe Arrays

A classe java.util.Arrays contém vários métodos estáticos para ordenar e pesquisar arrays, comparar arrays e preencher elementos de array. Esses métodos são sobrecarregados para todos os tipos primitivos.

NºMétodo e Descrição
1

public static int binarySearch(Object[] a, Object key)

Pesquisa o array especificado de Object (Byte, Int, double, etc.) para o valor especificado usando o algoritmo de busca binária. O array deve ser ordenado antes de fazer esta chamada. Retorna o índice da chave de pesquisa, se estiver contido na lista; caso contrário, retorna (–(ponto de inserção + 1)).

2

public static boolean equals(long[] a, long[] a2)

Retorna true se os dois arrays especificados de longs forem iguais entre si. Dois arrays são considerados iguais se ambos contêm o mesmo número de elementos e todos os pares correspondentes de elementos nos dois arrays são iguais. O mesmo método pode ser usado por todos os outros tipos de dados primitivos (Byte, short, Int, etc.)

3

public static void fill(int[] a, int val)

Atribui o valor int especificado a cada elemento do array especificado de ints. O mesmo método pode ser usado por todos os outros tipos de dados primitivos (Byte, short, Int, etc.)

4

public static void sort(Object[] a)

Ordena o array especificado de objetos em ordem crescente, de acordo com a ordenação natural de seus elementos. O mesmo método pode ser usado por todos os outros tipos de dados primitivos (Byte, short, Int, etc.)


Java

  1. Dominando Arrays em C#: Declaração, Inicialização e Operações
  2. Dominando Operadores Java: Tipos, Sintaxe e Exemplos Práticos
  3. Técnicas de Cópia de Arrays em Java: Guia Completo
  4. Dominando Interfaces em Java: Conceitos, Implementação e Boas Práticas
  5. Dominando Try-With-Resources em Java: Gerenciamento Automático de Recursos Explicado
  6. Anotações em Java Explicadas: Tipos, Posicionamento e Exemplos Práticos
  7. Arrays em C++ Desmistificados: Declaração, Inicialização e Técnicas com Ponteiros
  8. Dominando Alocação Dinâmica de Arrays em C++: Guia Prático com Exemplos de Código
  9. Tutorial de Arrays em Java: Declaração, Criação e Inicialização – Código de Exemplo
  10. Criando Array de Objetos em Java: Guia Passo a Passo