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 :