Índice
Em algum ponto de nosso desenvolvimento como criadores de software, vamos nos deparar com situações em que devemos fazer coisas muito mais complexas dentro de nossos programas, geralmente isso se traduz em um gerenciamento de dados mais complexo e uma organização diferente deles.Estrutura de dadosPara isso temos o Estruturas de dados, que nos permitem organizar nossas informações dentro do programa para poder acessá-las de forma ordenada e esquemática. Em Java Podemos lidar com diferentes tipos de estruturas graças às suas classes e bibliotecas padrão, por isso, se aprendermos quais temos disponíveis, é possível que possamos aproveitar o necessário e assim cumprir os nossos objetivos.
UMA variedade é um tipo de estrutura que possui uma conformação linear e pode armazenar uma quantidade de dados do mesmo tipo. Os dados que você pode armazenar são tipos primitivos, como int, bool, etc. Mas você também pode armazenar tipos de objetos, embora neste caso seja armazenado é a referência ao objeto e não o objeto como tal, porém é algo muito útil saber.
AcessoPor ser linear, o acesso ao seu conteúdo deve ser feito sequencialmente, embora possamos apontar diretamente para um índice dele e obter seu conteúdo, o percurso na maioria dos casos que podemos fazer nesta estrutura responde a uma sequência de seus índices.
Quando temos um índice por elemento, é uma matriz ou vetor unidimensionalPor outro lado, quando temos mais de um índice por elemento, estamos falando de matrizes multidimensional, ou seja, dentro de um índice temos uma estrutura interna com seus próprios índices.
Declarar um array é muito simples, basta definir o tipo de dado que ele vai armazenar e indicar as dimensões com colchetes, então devemos definir seu nome e com isso podemos começar a utilizá-lo.
Embora existam várias maneiras de declarar uma matriz, a preferida é a forma abreviada, conforme vemos abaixo:
tipo [] nameArrary = novo tipo [comprimento];
No caso de uma matriz multidimensional podemos fazer o mesmo, mas adicionando as novas camadas ou dimensões dentro da mesma declaração, por exemplo:
Matriz bidimensional:
tipo [] [] nameArrary = novo tipo [comprimento] [comprimento];
Matriz tridimensional:
tipo [] [] [] nameArrary = novo tipo [comprimento] [comprimento] [comprimento];
A única coisa que devemos ter em mente é que depois de três dimensões as coisas se tornam muito mais complexas, mas isso será ditado pelas nossas necessidades no momento do desenvolvimento do programa.
Para percorrer um array, devemos usar um dos ciclos iterativos que temos disponíveis, sendo o ciclo para um dos favoritos, pois podemos indicar o tamanho do array e percorrer cada um de seus elementos.
Devemos ter em mente que os índices das matrizes começam de zero, então em uma matriz de três elementos seus índices seriam [0], [1], [2], Isso deve ser levado em consideração, uma vez que não é uma conta tradicional, pode causar confusão.
Um exemplo genérico de como fazer um loop em uma matriz é algo como o seguinte:
para (int i = 0; i
Da mesma forma que naquele pequeno exemplo fizemos a impressão da tela do conteúdo do índice correspondente, também podemos fazer atribuições sequenciais e outras operações com o array. No caso de um array multidimensional, devemos fazer um ciclo para cada uma das dimensões que temos, por isso falamos que depois de mais de três dimensões um array se torna muito complexo.
Vamos construir um pequeno código no qual definiremos um array, depois faremos um tour por seus elementos e os mostraremos na tela. Então, vamos ver a aparência do nosso código:
public class ExampleArray1 {public static void main (String [] argv) {int [] ourArray = new int [12]; para (int i = 0; i <12; i ++) {ourArray [i] = i + 1; System.out.println ("O conteúdo da matriz em: [" + i + "] é:" + ourArray [i]); } System.out.println ("O comprimento total da matriz é:" + ourArray.length); }}
Neste programa, a primeira coisa que fazemos depois de definir nossa classe e o método a Principal é definir um array de tipo chamado int nosso Array ao qual atribuímos um comprimento de 12 elementos, então com um loop for que vai de 0 a 11 vamos atribuir um valor a cada um dos índices do array, então fazemos isso imediatamente, imprimimos seu valor e finalmente usamos a propriedade comprimento do array que nos permite obter seu comprimento total e imprimi-lo igualmente.
Se virmos isso em nosso console ao executar o programa, obteremos o seguinte:
PROLONGAR
Como podemos ver, obtemos uma linha para cada elemento do array e uma linha final que indica seu tamanho real, também notamos que se contarmos de 0 a 11 temos 12 elementos, então o que explicamos sobre a contagem do índice é demonstrado da matriz.O uso de arrays é muito popular e muito útil, porém há momentos em que suas limitações começam a ser percebidas, principalmente quando trabalhamos com estruturas muito dinâmicas onde não sabemos quantos elementos teremos no final e onde precisamos de um pouco mais de funcionalidade além de iterações para percorrer seus elementos.
Quando nos vemos na necessidade de ser mais complexos no manuseio de dados, podemos ir para o coleções, que nada mais são do que um número de classes agrupadas na biblioteca padrão de Java java.util e que nos permitem criar outros tipos de estruturas de dados.
Neste caso, vamos explorar a aula um pouco ArrayList, que nos permite criar listas de arrays como seu nome indica, mas para manipular seus elementos precisamos fazê-lo por meio de seus diferentes métodos.
Vamos ver abaixo uma pequena lista dos métodos disponíveis da classe ArrayList mais importante e que possamos precisar criar nossos programas, se precisarmos de algo adicional podemos sempre recorrer à documentação oficial do idioma.
adicionar ()Este método permite adicionar um elemento à lista no final ou em uma determinada posição, isso é definido passando os parâmetros.
Claro ()Limpa a estrutura excluindo ou esvaziando todos os elementos que contém.
obter ()Retorna o valor do índice indicado da lista em questão.
remover ()Este método nos permite remover um elemento específico da estrutura de dados.
toArray ()Este método nos permite fazer uma conversão de array do conteúdo da lista ou estrutura de dados.
Para declarar uma lista com ArrayList, basta criar uma instância desta classe, com isso podemos começar a trabalhar na atribuição de elementos e conteúdo, para isso podemos ver a seguinte sintaxe:
ArrayList ourList = new ArrayList ();
Embora também possamos usar uma declaração e atribuição simultânea de elementos, como vemos na seguinte linha de código:
List ourList = Arrays.asList ("Pedro", "Juan", "Manuel");
O tour de nossa lista pode ser alcançado com um ciclo iterativo com para () que já vimos nos arrays, a diferença é que como não sabemos ao certo o número de elementos em nossas listas, devemos definir o limite usando o método Tamanho () do mesmo e para obter o conteúdo em um determinado índice usamos o método obter (). Um exemplo de sintaxe para este passo a passo poderia ser o seguinte:
para (int i = 0; i
Agora vamos criar um pequeno programa onde colocaremos em prática o que vimos sobre ArrayList e, desta forma, especificar um aprendizado sobre a referida estrutura de dados:
import java.util.ArrayList; public class ExampleList1 {public static void main (String [] argv) {ArrayList ourList = new ArrayList (); ourList.add ("Peter"); ourList.add ("John"); ourList.add ("Francisco"); ourList.add ("Manolo"); ourList.add ("Paul"); para (int i = 0; i
Neste código, vemos que a primeira coisa que fazemos é importar a classe ArrayList do pacote java.util, se não o fizermos, não poderemos usá-lo.
Em seguida, definimos uma nova lista de elementos de tipo Corda, então popularizaremos a lista usando o método adicionar ()Como podemos ver, não definimos um limite de elemento, esta lista crescerá dinamicamente à medida que adicionarmos elementos a ela.
Finalmente com um ciclo para () e usando o método Tamanho () de nosso objeto de lista percorremos seus elementos e para obter o valor de cada posição usamos o método obter () com isso, podemos imprimir o conteúdo. Vamos ver como fica quando o executamos em nosso console:
PROLONGAR
Com isso terminamos este tutorial, já aprendemos a criar e trabalhar com as estruturas de dados dentro Java, isso nos permitirá construir aplicativos e programas mais complexos que atendam às nossas necessidades.