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 - Matrizes


Java fornece uma estrutura de dados, o array , que armazena uma coleção sequencial de tamanho fixo de elementos do mesmo tipo. Uma matriz é usada para armazenar uma coleção de dados, mas geralmente é mais útil pensar em uma matriz como uma coleção de variáveis ​​do mesmo tipo.

Em vez de declarar variáveis ​​individuais, como número0, número1, ... e número99, você declara uma variável de matriz, como números e usa números[0], números[1] e ..., números[99] para representar variáveis ​​individuais.

Este tutorial apresenta como declarar variáveis ​​de matriz, criar matrizes e processar matrizes usando variáveis ​​indexadas.

Declarando variáveis ​​de matriz


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

Sintaxe

dataType[] arrayRefVar;   // preferred way.
or
dataType arrayRefVar[];  // works but not preferred way.

Observação − O estilo dataType[] arrayRefVar é preferível. O estilo dataType arrayRefVar[] vem do C/C++ linguagem e foi adotado em Java para acomodar C/C++ programadores.

Exemplo


Os trechos de código a seguir são exemplos dessa sintaxe -
double[] myList;   // preferred way.
or
double myList[];   // works but not preferred way.

Criando matrizes


Você pode criar uma matriz usando o novo operador com a seguinte sintaxe -

Sintaxe

arrayRefVar = new dataType[arraySize];

A declaração acima faz duas coisas -

Declarar uma variável de matriz, criar uma matriz e atribuir a referência da matriz à variável pode ser combinado em uma instrução, conforme mostrado abaixo −
dataType[] arrayRefVar = new dataType[arraySize];

Alternativamente, você pode criar arrays da seguinte forma -
dataType[] arrayRefVar = {value0, value1, ..., valuek};

Os elementos do array são acessados ​​através do index . Os índices de matriz são baseados em 0; ou seja, eles começam de 0 a arrayRefVar.length-1 .

Exemplo


A instrução a seguir declara uma variável de array, myList, cria um array de 10 elementos do tipo double e atribui sua referência a myList −
double[] myList = new double[10];

A imagem a seguir representa a matriz myList. Aqui, myList contém dez valores duplos e os índices são de 0 a 9.

Processando Matrizes


Ao processar elementos de matriz, geralmente usamos for loop ou foreach loop porque todos os elementos em uma matriz são do mesmo tipo e o tamanho da matriz é conhecido.

Exemplo


Aqui está um exemplo completo mostrando como criar, inicializar e processar arrays -
Demonstração ao vivo
public class TestArray {

   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};

      // Print all the array elements
      for (int i = 0; i < myList.length; i++) {
         System.out.println(myList[i] + " ");
      }
     
      // Summing all elements
      double total = 0;
      for (int i = 0; i < myList.length; i++) {
         total += myList[i];
      }
      System.out.println("Total is " + total);
      
      // Finding the largest element
      double max = myList[0];
      for (int i = 1; i < myList.length; i++) {
         if (myList[i] > max) max = myList[i];
      }
      System.out.println("Max is " + max);  
   }
}

Isso produzirá o seguinte resultado -

Saída

1.9
2.9
3.4
3.5
Total is 11.7
Max is 3.5

Os loops foreach


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

Exemplo


O código a seguir exibe todos os elementos no array myList −
Demonstração ao vivo
public class TestArray {

   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};

      // Print all the array elements
      for (double element: myList) {
         System.out.println(element);
      }
   }
}

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 tipo primitivo para métodos, você também pode passar arrays para métodos. Por exemplo, o método a seguir exibe os elementos em um int matriz -

Exemplo

public static void printArray(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 instrução a seguir invoca o método printArray para exibir 3, 1, 2, 6, 4 e 2 −

Exemplo

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

Retornando uma matriz de um método


Um método também pode retornar um array. Por exemplo, o método a seguir retorna uma matriz que é a reversão de outra matriz −

Exemplo

public static int[] reverse(int[] list) {
   int[] result = new int[list.length];

   for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
      result[j] = list[i];
   }
   return result;
}

A classe de matrizes


A classe java.util.Arrays contém vários métodos estáticos para classificar e pesquisar arrays, comparar arrays e preencher elementos de array. Esses métodos são sobrecarregados para todos os tipos primitivos.
Nº Sr. Método e descrição
1
public static int binarySearch(Object[] a, Object key)

Pesquisa a matriz especificada de Object ( Byte, Int , double, etc.) para o valor especificado usando o algoritmo de pesquisa binária. A matriz deve ser classificada antes de fazer essa chamada. Isso retorna o índice da chave de pesquisa, se estiver 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 de longs especificados forem iguais entre si. Duas matrizes são consideradas iguais se ambas as matrizes contiverem o mesmo número de elementos e todos os pares de elementos correspondentes nas duas matrizes forem iguais. Isso retorna true se as duas matrizes forem iguais. O mesmo método pode ser usado por todos os outros tipos de dados primitivos (Byte, short, Int, etc.)
3
preenchimento de vazio estático público(int[] a, int val)

Atribui o valor int especificado a cada elemento da matriz de ints especificada. 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)

Classifica a matriz de objetos especificada 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. Matrizes C#
  2. Operadores Java
  3. Copiar Matrizes Java
  4. Interface Java
  5. Java try-with-resources
  6. Anotações Java
  7. Matrizes em C++ | Declare | Inicializar | Ponteiro para exemplos de matriz
  8. Alocação dinâmica de matrizes em C++ com exemplo
  9. Tutorial Java Arrays:Declare, Crie, Inicialize [Exemplo]
  10. Como criar uma matriz de objetos em Java