Use matrizes em Java
Em vez de rastrear dezenas de variáveis individuais, use um array em Java para coletar e armazenar dados de forma estruturada.
Na linguagem de programação Java, um array é uma coleção ordenada de dados. Você pode usar um array para armazenar informações de forma estruturada. É útil conhecer as diversas maneiras pelas quais você pode recuperar esses dados quando precisar deles. É importante notar que em Java, um array associativo (também chamado de dicionário em algumas linguagens) é chamado de hashmap. Este artigo não cobre hashmaps, mas você pode ler tudo sobre eles em meu artigo Usando um hashmap em Java.
Criando uma matriz de strings
O array mais simples em Java é um array unidimensional. É essencialmente uma lista. Para uma matriz de strings:
package com.opensource.example;
public class Example {
public static void main(String[] args) {
String[] myArray = {"foo", "bar", "baz"};
// retrieval
System.out.println(myArray[0]);
System.out.println(myArray[1]);
System.out.println(myArray[2]);
}
}
Observe que quando você recupera os dados de um array, o índice começa em 0, não em 1. Em outras palavras, um array contendo três valores é numerado de 0 a 2.
Alternativamente, você pode criar uma matriz e preenchê-la mais tarde. Ao fazer isso, entretanto, você também deve informar ao Java o comprimento do array. O “comprimento”, neste contexto, refere-se ao número de itens que um array pode conter.
package com.opensource.example;
public class Example {
public static void main(String[] args) {
String[] myArray = new String[3];
System.out.println("Empty myArray created.");
// populate the array
myArray[0] = "foo";
myArray[1] = "bar";
myArray[2] = "baz";
// retrieval
System.out.println(myArray[0]);
System.out.println(myArray[1]);
System.out.println(myArray[2]);
}
}
Supondo que o código esteja salvo em um arquivo chamado main.java
, execute-o usando o comando java
:
$ java ./main.java
foo
bar
baz
Para criar um array de números inteiros, defina o tipo de dados como int
em vez de String
:
package com.opensource.example;
public class Example {
public static void main(String[] args) {
int[] myArray = { 1, 2, 3 };
System.out.println(myArray[0]);
System.out.println(myArray[1]);
System.out.println(myArray[2]);
}
}
Execute o código:
$ java ./main.java
1
2
3
Iterando sobre um array
Depois de armazenar os dados em um array, você provavelmente pretende recuperá-los em algum momento. A maneira mais direta de ver todos os dados em um array é criar um loop for
que obtém o comprimento do array usando o método .length
e, em seguida, faz um loop sobre o array. um número de vezes igual ao comprimento:
package com.opensource.example;
public class Example {
public static void main(String[] args) {
String[] myArray = { "foo", "bar", "baz" };
for (int i=0; i < myArray.length; i++) {
System.out.println(myArray[i]);
}
}
}
Execute o código:
$ java ./main.java
foo
bar
baz
Matrizes multidimensionais
Um array não precisa ser apenas uma lista simples. Também pode ser uma lista de listas. Isso é chamado de array multidimensional e é bastante intuitivo, desde que você pense nele como um array de arrays:
package com.opensource.example;
public class Example {
public static void main(String[] args) {
String[][] myArray = {{ "zombie", "apocalypse" }, { "happy", "halloween" }};
}
}
}
Para ver o conteúdo do array, você pode usar um loop for
aninhado. Em um array unidimensional, você tinha que obter o comprimento de myArray
para que seu loop for
soubesse quando parar de iterar no array. Desta vez, você deve obter o comprimento de cada array dentro de myArray
. Para simplificar, chamo esses dois arrays de outer
e inner
, sendo o primeiro myArray
e o inner
representando cada matriz aninhada:
int outer = myArray.length;
int inner = myArray[1].length;
Depois de ter os dois comprimentos, você os usa como limites do seu loop for
:
for (int i = 0; i < outer; i++) {
for (int j = 0; j < inner; j++) {
System.out.println(myArray[i][j]);
}
}
Aqui está o exemplo de código completo:
package com.opensource.example;
public class Example {
String[][] myArray = {{ "foo", "bar" }, { "baz", "qux" }};
int outer = myArray.length;
int inner = myArray[1].length;
for (int i = 0; i < outer; i++) {
for (int j = 0; j < inner; j++) {
System.out.println(myArray[i][j]);
}
}
}
}
Execute o código:
$ java ./main.java
zombie
apocalypse
happy
halloween
Matrizes de dados
Às vezes faz mais sentido usar um array Java do que rastrear dezenas de variáveis individuais. Depois de entender como estruturar e recuperar dados em uma linguagem, você poderá gerar dados complexos de maneira organizada e conveniente.