Em vez de termos de repetir todos os tipos parametrizados, é suficiente usarmos <>. Na documentação isso é chamado de "diamond" (losango), em alusão à forma do novo operador.
// Requer Java 7 import java.util.*; class TesteNotacaoAbreviada { public static void listMap (Map<String, String> map) { for (Map.Entry<String, String> entry : map.entrySet()) { } } public static void main (String[] args) { // Note que não é necessário escrever "new HashMap<String, String>()" Map<String, String> traducao = new HashMap<>(); // Nem aqui é preciso escrever "new TreeMap<String, String>()" traducao = new TreeMap<>(); // A notação abreviada funciona também para passagem de parâmetros, mas // é bem mais difícil fazê-la funcionar adequadamente. No caso abaixo, // o compilador acha que o tipo que está sendo passado é new TreeMap<Object,Object> // e emite um erro de compilação. listMap (new TreeMap<>()); } }