Quatro métodos de travessia de arraylist java e uso da classe Arraylist em Java
pacote com.test; importar java.util.arraylist; importar java.util.iterator; importar java.util.list; public class ArrayListDemo {public static void main (string args []) {list <strist> list = new ArrayList < String> (); (IT1.Next ()); para (string tmp: list) {System.out.println (tmp); obtenha (i));PS: Uso da classe Arraylist em Java
1. O que é Arraylist
Arraylist é o lendário matriz dinâmica.
Aumente e diminua dinamicamente os elementos
Implementar interfaces Icollection e Ilist
Configuração flexível do tamanho da matriz
2. Como usar o Arraylist
O exemplo mais simples:
Arraylist List = new ArrayList (); 5); // Remova o 6º elemento para (int i = 0; i <3; i ++) // Adicione mais 3 elementos list.add (i+20); .ToArray (typeof (int32)); // retorna a matriz contida no ArrayList
Este é um exemplo simples.
3. Métodos e propriedades importantes do Arraylist
1) Construtor
Arraylist fornece três construtores:
public ArrayList ();
O construtor padrão inicializará a matriz interna com o tamanho padrão (16)
Public ArrayList (ICOLLECTION);
Construído com um objeto ICOLLECTION e adicionar elementos da coleção ao ArrayList
public ArrayList (int);
Inicialize a matriz interna com o tamanho especificado
2.
A propriedade ISSyncronizada indica se a instância do ArrayList atual suporta a sincronização do encadeamento, enquanto o método estático do ArrayList.Synchronized retorna um encapsulamento de sincronização do encadeamento ArrayList.
Se você usar instâncias de sincronização não-threaded, precisará ligar para o bloqueio manualmente para manter a sincronização do thread ao acessar vários threads, por exemplo:
Arraylist List = new ArrayList ();
A propriedade Syncroot é na verdade, mas para satisfazer a definição de syncroot de icollection,
Aqui ainda usamos o Syncroot para manter a padronização do código -fonte
{list.add ("Adicionar um item");Se você usa a instância retornada pelo método ArrayList.Synchronized, você não precisa considerar o problema da sincronização do thread Por ArrayList.synchronized Instância, cada propriedade usa a palavra -chave de bloqueio para garantir a sincronização do encadeamento.
3) Contar atributo e atributo de capacidade
A propriedade Count é o número de elementos atualmente contidos no ArrayList, e essa propriedade é somente leitura.
A propriedade de capacidade é o número máximo que o Arraylist pode conter no momento.
4) Adicionar, addRange, remover, remover, remover, inserir, insertange
Esses métodos são semelhantes
O método Add é usado para adicionar um elemento ao final da lista atual
O método AddRange é usado para adicionar um lote de elementos ao final da lista atual
O método de remoção é usado para excluir um elemento e excluí -lo através da referência do próprio elemento.
O método removeat é usado para excluir um elemento e excluí -lo indexando o valor.
A remoção é usada para excluir um lote de elementos, que é excluído especificando o índice inicial e o número de exclusão.
A inserção é usada para adicionar um elemento à posição especificada e os elementos por trás da lista são movidos para trás por sua vez.
O InserTrange é usado para adicionar um lote de elementos da posição especificada, e os elementos por trás da lista são movidos para trás por sua vez.
Além disso, existem vários métodos semelhantes:
O método claro é usado para limpar todos os elementos existentes.
O método contém é usado para descobrir que um objeto não está na lista.
Não ficarei sobrecarregado com o resto.
5) Método Trimsize
Este método é usado para corrigir a lista do Array no tamanho do elemento real.
6) Método de ToArray
Este método copia o elemento Arraylist em uma nova matriz.
4. Arraylist e conversão de matriz
Exemplo 1:
Lista de Arraylist = novo Arraylist (); ;
Exemplo 2:
Lista de Arraylist = novo ArrayList (); ;
O acima introduz dois métodos de conversão de Arraylist em Array
Exemplo 3:
Lista de Arraylist = novo ArrayList (); ;
É diferente de uma matriz, porque pode ser convertida em uma matriz de objetos, por isso não cometerá nenhum erro adicionar diferentes tipos de elementos em uma lista de Array. pode ser convertido corretamente por todos os elementos, caso contrário, uma exceção que não pode ser transformada será lançada.
5. Melhor conselho sobre o uso da Arraylist
Nesta seção, discutiremos a diferença entre Arraylist e Array, bem como a eficiência da Arraylist
1) Arraylist é uma versão complexa da matriz
Arraylist encapsula uma matriz do tipo de objeto.
Determine o tamanho do elemento real.
6) Método de ToArray
Este método copia o elemento Arraylist em uma nova matriz.
4. Arraylist e conversão de matriz
Exemplo 1:
Lista de Arraylist = novo Arraylist (); ;
Exemplo 2:
Lista de Arraylist = novo ArrayList (); ;
O acima introduz dois métodos de conversão de Arraylist em Array
Exemplo 3:
Lista de Arraylist = novo ArrayList (); ;
É diferente de uma matriz, porque pode ser convertida em uma matriz de objetos, por isso não cometerá nenhum erro adicionar diferentes tipos de elementos em uma lista de Array. pode ser convertido corretamente por todos os elementos, caso contrário, uma exceção que não pode ser transformada será lançada.
5. Melhor conselho sobre o uso da Arraylist
Nesta seção, discutiremos a diferença entre Arraylist e Array, bem como a eficiência da Arraylist
1) Arraylist é uma versão complexa da matriz
A Arraylist encapsula uma matriz do tipo Objeto Método de matriz.
2) a influência do tipo de objeto interno
Para os tipos de referência gerais, esta parte não tem um grande impacto, mas para tipos de valor, adicionar e modificar elementos ao ArrayList causará operações de embalagem e unboxing e operações frequentes podem afetar alguma eficiência.
Mas para a maioria das pessoas, a maioria dos aplicativos usa matrizes de tipos de valor.
Não há como eliminar esse impacto.
3) Expansão da matriz
Este é um fator que tem um impacto maior na eficiência do Arraylist.
Sempre que você executar add, addRange, insert, InserTrange e outros métodos para adicionar elementos, ele verificará se a capacidade da matriz interna é insuficiente. Novo.
Exemplo 1: Por exemplo, se um dado com 200 elementos for adicionado dinamicamente a uma lista de Arraylist criada com o tamanho padrão de 16 elementos, ele passará:
16*2*2*2 = 256
Quatro expansões atenderão aos requisitos finais; portanto, se:
ArrayList List = new ArrayList (210);
Crie uma lista de Array da maneira não apenas reduzirá as operações de criação e cópia de matriz quatro vezes, mas também reduzirá o uso da memória.
Exemplo 2: Uma Arraylist é criada com 30 elementos esperados:
ArrayList List = new ArrayList (30);
Durante o processo de execução, se 31 elementos forem adicionados, a matriz será expandida para o tamanho de 60 elementos e nenhum novo elementos será adicionado neste momento. . Se neste momento, use:
ArrayList List = new ArrayList (40);
Então tudo está resolvido.
Portanto, estimar corretamente os possíveis elementos e chamar o método Trimsize em momentos apropriados é uma maneira importante de melhorar a eficiência do uso do Arraylist.
4) freqüentemente chamam indexof, contém e outros métodos (classificar, Binários e outros quadrados
A perda de eficiência causada pelo método é otimizada, não nesta coluna) Primeiro de tudo, precisamos deixar claro que o Arraylist é uma matriz dinâmica, que não inclui algoritmos que são acessados rapidamente por meio de chave ou valor, portanto, de fato, O Indexof, contém e outros métodos é simples de executar. pares de valor, como hashtable ou classedlist.
Arraylist al = novo Arraylist (); al.add ("como"); al.add (300); al.add (1.2); al.add (22,8);