Rédaction de mémos de la collection Java. Aussi, un mémo d'écriture de type générique.
Dans le didacticiel Java, cela est expliqué dans cette figure car il s'agit d'une interface Core Collection.
Generics Celui qui écrit comme ça ... je ne peux pas expliquer ...
Collection<String> col1 = new ArrayList<>();
Voir ici pour les termes génériques et plus. Points of Java Generics
Convention de dénomination des paramètres de type
Type Parameter | La description |
---|---|
E | Element |
K | Key |
N | Number |
T | Type |
V | Value |
S,U,V etc. | 2nd, 3rd, 4th types |
ArrayList
Exemple de code ArrayList.
Cela fonctionne, mais il se met en colère contre Eclipse aux endroits suivants ...
「List myList = new ArrayList();
」
// Old usage of List - Raw type List
List myList = new ArrayList();
String s1 = "Apple";
String s2 = "Orange";
String s3 = "Banana";
myList.add(s1);
myList.add(s2);
myList.add(s3);
// Size, Print List
System.out.println("List size : " + myList.size());
for (Object obj : myList) {
System.out.println(obj);
}
// Sort List
Collections.sort(myList);
for (Object obj : myList) {
System.out.println(obj);
}
// Using Iterator
Iterator itr = myList.iterator();
while (itr.hasNext()) {
System.out.println((String)itr.next());
}
Cliquez ici pour une méthode moderne (Java 7 et plus) utilisant Generics (type paramétré).
La bonne réponse est "List <String> myList = new ArrayList <> ();
".
Le but est de bien saisir la sécurité au niveau du codage.
// New usage of List - Generics
List<String> myList = new ArrayList<>();
String s1 = "Apple";
String s2 = "Orange";
String s3 = "Banana";
myList.add(s1);
myList.add(s2);
myList.add(s3);
// Using Iterator
Iterator<String> itr = myList.iterator();
while (itr.hasNext()) {
System.out.println((String)itr.next());
}
HashSet Exemple de code HashSet.
// Use HashSet (Old Style)
Set hs = new HashSet();
hs.add("Hello");
hs.add("Dolly");
// Using Iterator
Iterator itr = hs.iterator();
while (itr.hasNext()) {
System.out.println((String)itr.next());
}
// New Style
Set<String> hs2 = new HashSet<>();
// Using Iterator
Iterator<String> itr2 = hs2.iterator();
while (itr2.hasNext()) {
System.out.println(itr2.next());
}
HashMap Exemple de code HashMap.
Map<Integer, String> map1 = new HashMap<>();
map1.put(1, "Cloud");
map1.put(2, "Big Data");
map1.put(3, "Machine Learning");
// key objects
Set<Integer> keys = map1.keySet();
for (Object key : keys) {
System.out.println(key + ": " + map1.get(key));
}
// argument with ? wildcard
public static void printList(List<?> list) {
for (Object obj : list ) {
System.out.println(obj);
}
}
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("Apple");
list1.add("Grape");
printList(list1);
List<Integer> list2 = new ArrayList<>();
list2.add(100);
list2.add(300);
printList(list2);
}
public class GenericTypeClassSample<T> {
T height;
T width;
public GenericTypeClassSample(T width, T height) {
super();
this.width = width;
this.height = height;
}
public T getWidth() {
return width;
}
public void setWidth(T width) {
this.width = width;
}
public T getHeight() {
return height;
}
public void setHeight(T height) {
this.height = height;
}
public static void main(String[] args) {
GenericTypeClassSample<Integer> rect1 = new GenericTypeClassSample<>(10, 5);
System.out.println("Area : " + rect1.getHeight() * rect1.getWidth());
GenericTypeClassSample<Double> rect2 = new GenericTypeClassSample<>(4.3, 5.7);
System.out.println("Area : " + rect2.getHeight() * rect2.getWidth());
}
}
Recommended Posts