Expliquer ce que fait le code suivant :
import java.util.List; import java.util.ArrayList; import java.util.LinkedList; ... public static void main(String[] args) { List list; if (args.length==0) list=new ArrayList(); else list=new LinkedList(); for(String s:args) list.add(s); } ...
Le code précédent compile avec un warning, que doit-on faire
pour supprimer celui-ci ?
Ré-écrire le code du main en conséquence
De la même façon, transformer le code suivant :
public static void main(String[] args) { List list=new ArrayList(); Collections.addAll(list,args); for(int i=0;i<list.size();i++) { String s=(String)list.get(i); System.out.printf("%s:%d\n"s,s.length()); } }
Quel est l'intérêt des generics en Java ?
Nous allons maintenant voir comment marche le mécanisme qui transforme tout type primitf en objet et vice-versa.
Integer value=777; int i=value;Dans ce code, quelle instruction peut effectuer une allocation ?
public static boolean isEquals(Integer i,Integer j) { return i==j; } public static void main(String[] args) { System.out.println(isEquals(3,3)); System.out.println(isEquals(128,128)); }Expliquer pourquoi ?
Nous allons maintenant utiliser le mécanisme de boxing avec la liste chaînée générique.
LinkedList list=new LinkedList(); list.add(3); int i=list.get(0);
Ré-écrire les classes fr.umlv.datas.LinkedLing et fr.umlv.datas.Link en utilisant des types paramétrés.
Ecrire une classe Stack générique permettant de gérer une pile de
taille fixe indiquée à la construction.
La pile devra avoir les opérations ayant les opérations suivantes :