JDK1.5 泛型
◆起因:
JDK1.4以前类型不明确:
▶装入集合的类型都被当做 Object 对待,从而失去自己的实际类型。
▶从集合中取出时往往需要转型,效率低,容易产生错误。
◆解决办法:
在定义集合的时候同时定义集合中对象的类型
▶也可以在定义 Collection 的时候指定
▶也可以在循环时用 Iterator 指定
(都指定最好)
◆好处:
增强程序的可读性和稳定性
例:BasicGeneric.java
import java.util.*;
public class BasicGeneric {
public static void main(String[] args) {
/*List<String> c = new ArrayList<String>();
c.add("aaa");
c.add("bbb");
c.add("ccc");
for(int i=0; i<c.size(); i++) {
String s = c.get(i);
System.out.println(s);
}*/
Collection<String> c2 = new HashSet<String>();
c2.add("aaa");
c2.add("bbb");
c2.add("ccc");
for(Iterator<String> it = c2.iterator(); it.hasNext();) {
String s = it.next();
System.out.println(s);
}
}
}
class MyName implements Comparable<MyName> {
int age;
public int compareTo(MyName mn) {
if(this.age > mn.age) return 1;
else if(this.age < mn.age) return -1;
else return 0;
}
修改之前的TestMap如下:
import java.util.*;
public class TestMap2 {
public static void main(String[] args) {
Map<String,Integer> m1 = new HashMap<String,Integer>();
m1.put("one",1);
m1.put("two",2);
m1.put("three",3);
System.out.println(m1.size());
System.out.println(m1.containsKey("one"));
if(m1.containsKey("two")) {
int i = m1.get("two");
System.out.println(i);
}
}
}