Les collections sont naturellement des structures de données hétérogènes, c'est-à dire que leurs éléments ne sont pas nécessairement tous du même type. On peut ainsi ajouter les éléments suivants à une liste l :
l.add(new Integer(2)); l.add("Java"); l.add(java.awt.Color.red);
Comme la méthode get des listes retourne un Object, si l'on connait le type de l'élément, on utilise généralement un transtypage :
List l = ...; // seuls des instances d'Integer ont été ajoutées Integer i = (Integer) l.get(0); int n = i.intValue();