Vídeo: Programar em Java - Vetores/Arrays pt. 1 - Aula 30 2024
A classe ArrayList que é usada é em muitos programas de aplicativos para Android é apenas a ponta do iceberg de coleções Java. A biblioteca Java contém muitas classes de coleções, cada uma com suas próprias vantagens. A tabela contém uma lista abreviada.
Nome da classe | Característica |
---|---|
ArrayList | Uma matriz redimensionável. |
LinkedList | Uma lista de valores, cada um com um campo que aponta para o próximo
na lista. |
Stack | Uma estrutura (que cresce de baixo para cima) otimizada
para acessar o valor mais alto. Você pode facilmente adicionar um valor ao topo ou removê-lo do topo. |
Fila | Uma estrutura (que cresce em uma extremidade) otimizada para
adicionando valores a uma extremidade (traseira) e removendo valores da outra extremidade (a frente). |
PriorityQueue | Uma estrutura, como uma fila, que permite que certos valores
de maior prioridade se movam para a frente. |
HashSet | Uma coleção que não contém valores duplicados. |
HashMap | Uma coleção de pares chave / valor. |
Cada classe de coleção tem seu próprio conjunto de métodos (além dos métodos que herda da AbstractCollection, o antepassado de todas as classes de coleta).
Uma matriz é um tipo particular de coleção otimizada para indexação. Ou seja, você pode encontrar de forma fácil e eficiente o 100º valor armazenado em uma matriz, o valor 1, 000 armazenado em uma matriz ou o valor 1, 000, 000 armazenado em uma matriz.
A matriz é uma característica venerável, testada e verdadeira de muitas linguagens de programação, incluindo idiomas mais recentes, como Java e idiomas mais antigos, como FORTRAN. Na verdade, a história da matriz remonta até agora que a maioria dos idiomas (incluindo Java) possui notação especial para lidar com arrays. A listagem ilustra a notação para arrays em um programa Java simples.
pacote com. Allmycode. coleções; classe pública SimpleCollectionsDemo {public static void main (String [] args) { String [] myArray = new String [4]; myArray [0] = "Olá"; myArray [1] = ","; myArray [2] = "leitores"; myArray [3] = "!"; para (int i = 0; i <4; i ++) { Sistema. Fora. imprimir (myArray [i]); } Sistema. Fora. println (); para (String string: myArray) {System. Fora. print (string);}}}
A figura mostra a saída de uma execução do código na listagem. Tanto o normal para loop e o loop avançado para mostrar a mesma saída.
Na listagem, o normal para loop usa índices, com cada índice marcado por colchetes.Como é com todas as coleções Java, o índice do valor inicial é 0, não 1. Observe também o número 4 na declaração da matriz - indica que "você pode armazenar 4 valores na matriz. "
O número 4 não indica que" você pode atribuir um valor ao myArray [4]. "Na verdade, se você adicionar uma declaração como myArray [4] =" Oops! "Para o código na listagem, você recebe uma mensagem de erro desagradável (ArrayIndexOutOfBoundsException) quando você executa o programa.
A instrução String [] myArray = new String [4] cria uma matriz vazia e faz a variável myArray se referir a essa matriz vazia. A matriz pode potencialmente armazenar até quatro valores. Mas, inicialmente, essa variável se refere a uma matriz que não contém valores. Não é até que Java execute a primeira declaração de atribuição (myArray [0] = "Olá") que a matriz contém quaisquer valores.
Você pode encontrar o 100º valor armazenado em uma matriz ou o valor 1, 000, 000 armazenado em uma matriz de forma fácil e eficiente. Nada mal para um dia de trabalho. Então, qual é a desvantagem de usar uma matriz? A maior desvantagem de uma matriz é que cada matriz possui um limite fixo no número de valores que pode conter. Quando você cria a matriz na lista, o Java reserva espaço para até quatro valores String.
Se, mais tarde, no programa, você decide que deseja armazenar um quinto elemento na matriz, você precisa de algum código desajeitado e ineficiente para tornar-se uma matriz maior. Você também pode superestimar o tamanho que você precisa para uma matriz, como mostrado neste exemplo:
String [] myArray = new String [20000000];
Quando você superestimar, provavelmente desperdiça muito espaço de memória.
Outra característica desagradável de uma matriz é a dificuldade que você pode ter ao inserir novos valores. Imagine ter uma caixa de madeira para cada ano em sua coleção de Imperador Constantino Comics . A série remonta ao ano 307 A. D., quando Constantino se tornou chefe do Império Romano.
Você tem apenas 1, 700 caixas porque está faltando cerca de seis anos (principalmente dos anos 1150 a 1155). As caixas não estão numeradas, mas são empilhadas uma ao lado da outra em uma linha de 200 metros de comprimento. (A linha é longa enquanto o 55º andar de um arranha-céu é alto.)
Em uma venda de garagem em Istambul, você encontra uma edição rara de Imperador Constantino Comics a partir de março de 1152. Depois de regozijar-se com sua primeiro comic do ano 1152, você percebe que você precisa inserir uma nova caixa na pilha entre os anos 1151 e 1153, que envolve mover a caixa do ano 2013 cerca de dez centimetros para a esquerda e, em seguida, mover a caixa de 2012 no lugar de caixa do 2013, e depois movendo a caixa de 2011 no lugar da caixa de 2012. E assim por diante.
A vida para o ávido Imperador Constantine Comics coletor está prestes a se tornar cansativo! Inserir um valor no meio de uma grande variedade é igualmente irritante.