Arrays em código Java
o ArrayList classe que é usada em muitos programas de aplicativos Android é apenas a ponta do Java coleções iceberg. A biblioteca Java contém muitas classes de coleções, cada um 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 tendo um campo que aponta para o NextOne na lista. |
Pilha | Uma estrutura (que cresce de baixo para cima), que é o acesso optimizedfor para o valor mais alto. Você pode facilmente adicionar um valor a thetop ou removê-lo a partir do topo. |
Fila | Uma estrutura (que cresce a uma extremidade), que é optimizada valores foradding a uma extremidade (a traseira) e removendo os valores de theother final (à frente). |
PriorityQueue | A estrutura, como uma fila, que permite que certos valores (de maior prioridade) mover para a frente. |
HashSet | Uma coleção que não contém valores duplicados. |
HashMap | Uma coleção de pares de chave / valor. |
Cada classe de coleção tem seu próprio conjunto de métodos (para além dos métodos que ele herda de AbstractCollection, o ancestral de todas as classes de cobrança).
Uma matriz é um tipo específico de recolha que é otimizada para indexação. Ou seja, você pode facilmente e eficientemente encontrar o valor 100 armazenados em uma matriz, o valor 1000 armazenados em uma matriz, ou o valor de 1000000 armazenados em uma matriz.
A matriz é uma característica venerável, tentou-e-verdadeiro de muitas linguagens de programação, incluindo novas linguagens como Java e linguagens mais antigas, como FORTRAN. Na verdade, a história da matriz remonta tão longe que a maioria das línguas (incluindo Java) têm notação especial para lidar com arrays. A listagem ilustra a notação para matrizes em um programa Java simples.
classe pacote com.allmycode.collections-pública SimpleCollectionsDemo {public static void main (String [] args) {String [] myArray = new String [4] -myArray [0] = "Olá" -myArray [1] = "," -myArray [2] = "leitores" -myArray [3] = "!" -for (int i = 0- i lt; 4- i ++) { System.out.print (myArray [i]) -}System.out.println () - para (String string: myArray) {System.out.println (string) -}}}
A figura mostra a saída de uma execução do código na listagem. Tanto o ordinário para loop e do reforço para loop de exibir a mesma saída.
No perfil, o comum para circuito utiliza índices, com cada índice marcados por colchetes. Como é com todas as coleções de Java, o índice do valor inicial é 0, não 1. Observe também o número 4 na declaração do array - isso indica que "você pode armazenar 4 valores na matriz."
O número 4 não faz indicam que "é possível atribuir um valor a Matriz [4]."Na verdade, se você adicionar uma declaração como Matriz [4] = "Oops!" para o código no perfil, você recebe uma mensagem de erro desagradável (Índice de matriz fora dos limites de exceção) Quando você executar o programa.
A declaração String [] myArray = new String [4] cria uma matriz vazia e faz com que o myArray variável referem-se a essa matriz vazia. A matriz pode potencialmente armazenar até quatro valores. Mas, inicialmente, essa variável refere-se a uma matriz que não contém valores. Não é até Java executa a instrução primeiro trabalho (myArray [0] = "Olá") Que a matriz contém quaisquer valores.
Você pode facilmente e eficientemente encontrar o valor 100 armazenado em uma matriz ou o valor 1000000 armazenados em uma matriz. Nada mau para um dia de trabalho. Então, qual é a desvantagem de usar uma matriz? A maior desvantagem de uma matriz é que cada matriz tem um limite fixo para o número de valores que ele pode conter. Quando você criar a matriz na listagem, Java reserva espaço para até quatro Corda valores.
Se, mais tarde no programa, você decide que você deseja armazenar um quinto elemento na matriz, você precisa de algum código desajeitado, ineficiente para fazer-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, você provavelmente perder muito espaço de memória.
Outra característica desagradável de uma matriz é a dificuldade que você pode ter em 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 dC ano 307, quando Constantino tornou-se chefe do Império Romano.
Você tem apenas 1.700 caixas porque você está faltando cerca de seis anos (principalmente a partir dos anos 1150 a 1155). As caixas não são numerados, mas eles estão empilhados um lado para outro em uma linha que é de 200 metros de comprimento. (A linha é tão longo como o chão 55 de um arranha-céus é 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 se alegrar com a sua primeira história em quadrinhos a partir do ano 1152, você percebe que você tem que inserir uma nova caixa na pilha entre os anos de 1151 e 1153, que envolve mover caixa de o ano de 2013 cerca de 10 centímetros para a esquerda, e em seguida, movendo a caixa de 2012 no lugar da caixa de 2013, e em seguida, movendo a caixa de 2011 no lugar da caixa de 2012. E assim por diante.
Vida para o ávido Imperador Constantine Comics coletor está prestes a se tornar cansativo! Inserindo um valor no meio de uma grande variedade é igualmente irritante.