Java理论和实践:了解泛型和实例
了解泛型
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
泛型实例
泛型实例1代码:
public void test1() {
//定义一个list数组
List<String> list = new ArrayList();
//给数组添加值
list.add("wangli");
list.add("aaaa");
list.add("eeee");
//迭代
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String value = it.next();
System.out.println(value);
}
}
泛型实例2代码:
public void test2() {
//定义一个Map型数组
Map<Integer, String> map = new HashMap<Integer, String>();
//赋值
map.put(1, "redarmy");
map.put(2, "mj");
map.put(3, "xiaoshenyang");
//通过Map对象调用entrySet()方法
Set<Map.Entry<Integer, String>> entries = map.entrySet();
//for循环输出
for (Map.Entry<Integer, String> entry : entries) {
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
}
泛型实例3代码:
public void test3(){
Map<Integer, String> map=new HashMap<Integer,String>();
map.put(1, "fffff");
map.put(2, "ffdf");
map.put(3, "ssssss");
Set<Integer> keys= map.keySet();
Iterator<Integer> it=keys.iterator();
while (it.hasNext()) {
int key=it.next();
System.out.println(key+" "+map.get(key));
}
for(Integer key:keys){
System.out.println(key+" "+map.get(key));
}
}
结束语:
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。希望大家多交流交流QQ;1103890851
博客:
http://blog.csdn.net/wangliaizq10000/archive/2011/02/22/6199912.aspx