(); 
  data.add ( novo duplo ( 4.0) ; 
 
 duplo valor = data.get (0); . 
 
 a declaração do ArrayList se torna um pouco mais pesado , mas os programadores podem reconhecer os benefícios o compilador agora lida com o casting de dados e o erro elenco potencialmente causadores de acidente na terceira linha do código 1.4 é pego em tempo de compilação . 
 Autoboxing 
 
 Uma das perturbações insignificantes foi removido trabalhando com as coleções de objetos também. na maioria das vezes , os dados numéricos brutos serão armazenados em primitivos, não- objeto , como tipos de dados int e double . no entanto, apenas os objetos, equivalentes baseadas em classe podem ser armazenados em uma coleção. In 1.4 , o programador tinha que criar manualmente um novo objeto de cada vez que ele ou ela queria para armazenar um número em uma coleção , e lançá-lo de volta a um tipo de dados primitivo , quando foi puxado para fora. Autoboxing permite Java para lidar com isso automaticamente, de modo que o código : 
 
 data.add ( novo duplo ( 4.0) ); 
 
 agora pode ser substituído por : 
 
 data.add (4,0 ); 
 
 Java vai lidar com a conversão de "double" para "Double" automaticamente. 
 loop for aprimorado 
 
 ao armazenar dados em uma matriz ou qualquer um dos dados coleção estruturas , o programador pode encurtar o tradicional circuito do familiar : 
 
 for (int x = 0; x < data.size (); x + +) { 
 
 //faz algo com cada dupla em " dados " 
 
 } 
 
 Para o mais compacto e de fácil leitura : 
 
 para ( d duplo : dados ) { 
 
 //do algo com cada dupla em " dados " 
 
 } 
 
 tipos enumerados 
 
 Java 1.5 adicionado tipo " enum" com a língua . Tradicionalmente, se um programador queria manter o controle de todos os valores possíveis de uma opção, ele ou ela tinha que mapear palavras para números inteiros usando o "int static final" tipo de dados , assim: public class 
 
 Semáforo { 
 
 int color = 0; 
 
 static final int RED = 0; 
 
 static final int AMARELO = 1; 
 
 static final int VERDE = 2; 
 . 
 } 
 
 Este foi tedioso e propenso bug Por exemplo , o que acontece se a cor se torna Enum torna a solução muito mais elegante "4 ? " : 
 
 Semáforo Color = Stoplight.RED ; 
 
 public enum Semáforo { 
 
 vermelho, amarelo, verde & 
 }; 
 
 ao contrário da velha maneira " static final " , o compilador agora sabe o que opções válidas são para " Semáforo " e pode aplicá-las para nós. como um bônus adicional , se o valor de "Cor" é impresso para o console, ele será impresso como a palavra Inglês, e não como um número.