ArrayList
Ao contrário das matrizes comuns, o    ArrayList do pacote  java.util é um array de expansão automática. Ao criar um objeto do tipo  ArrayList, você não precisa especificar a sua dimensão. Por exemplo,
 
ArrayList  lista = new ArrayList();
 
Vantagens ArrayList em comparação com um array regular:
- acesso rápido a elementos por índice em tempo constante 
O(1); 
- acessar elementos por valor em tempo linear 
O(n); 
- permite que você armazene qualquer valor, incluindo 
null. 
 
 
Fraquezas ArrayList: 
Inserir/remover um elemento  causa a substituição de todos os elementos colocados "à direita" na lista uma posição à esquerda, ou seja, funciona em tempo linear O(n); 
 
Lembre-se que as listas podem conter apenas objetos, portanto, se você deseja armazenar números, use Integer em vez de int. Integer é o nome de uma classe e um objeto dessa classe pode conter um valor inteiro. Você pode ler mais sobre classes e objetos aqui: introdução à programação orientada a objetos. 
            
            
                  
            
             
                    
            
                 
      
                  
           | 
	
		
 
     
              
              
                  
                       
            
                
          
            Existem duas opções para adicionar um elemento a um ArrayList: 
add(value);  - adicionando um valor ao final do ArrayList
 add(index, value); - adicionando um valor ao lugar certo pelo índice.
 
Por exemplo:
 
arr.adicionar(10); extensão>
arr.adicionar(5,10); 
 
 
  
            
            
                  
            
             
                    
            
                 
      
                  
           | 
	
		
 
     
              
              
                  
                       
            
                
          
            Para obter o valor de um elemento de um ArrayList, use o método   get(index)
Por exemplo:
 
Para descobrir o número de elementos em um array, você pode usar o método size() 
Por exemplo:
 
int contagem = arr. tamanho();
 
  
            
            
                  
            
             
                    
            
                 
      
                  
           | 
	
		
 
     
              
              
                  
                       
            
                
          
            Para alterar o valor por índice na lista, use  name.set(index,value); 
  
 
            
            
                  
            
             
                    
            
                 
      
                  
           | 
	
		
 
     
              
              
                  
                       
            
                
          
            Existem duas opções para adicionar um elemento a um ArrayList: 
add(value);  - adicionando um valor ao final do ArrayList
 add(index, value); - adicionando um valor ao lugar certo pelo índice.
 
Por exemplo:
 
arr.adicionar(10); extensão>
arr.adicionar(5,10); 
 
 
  
            
            
                  
            
             
                    
            
                 
      
                  
           | 
	
		
 
     
              
              
                  
                       
            
                
          
            Você pode remover elementos em um ArrayList usando o método  remove de duas maneiras:
 
- por index remove(index)
 
- por valor remove(valor)
 
 
Por exemplo:
  
 
arr.remover(0); span> //remove o primeiro elemento
arr.remover(< strong>novo Integer(10)); //exclui elemento com valor 10
 
  
            
            
                  
            
             
                    
            
                 
      
                  
           | 
	
		
 
     
              
              
                  
                       
            
                
          
            ArrayList reverso
A interface  Collections  também fornece métodos para operações em massa que funcionam em toda a coleção:
 containsAll - retorna o valor booleano  true se esta coleção contém todos os elementos da coleção chamada, caso contrário, retorna  false.
 addAll - adiciona todos os elementos especificados à coleção especificada. Os elementos a serem adicionados podem ser especificados individualmente ou como um array.
 removeAll -  é usado para remover todos os elementos da lista que estão contidos na coleção especificada.
 limpar - remove todos os elementos
 reverse - array reverse 
etc
 
Exemplo 
Usando  removeAll.
 
ArrayList<Integer> primeiro = new ArrayList<Integer>();
primeiro.add(1);
primeiro.add(2);
primeiro.add(3);
ArrayList<Integer> segundo = new ArrayList<Integer>();
segundo.add(1);
segundo.add(2);
// remove todos os elementos da segunda lista,
// se existirem na primeira lista
segundo.removeAll(primeiro);
 
            
            
                  
            
             
                    
            
                 
      
                  
           |