泛型和增强型for循环。摘记

没有泛形的Collections 库的代码

ArrayList list = new ArrayList();
list.add(0, new Integer(42));
 
int total = ((Integer)list.get(0)).intValue();

带有范型化Collections 库的同一个例子可编写为:

ArrayList<Integer> list =  new ArrayList<Integer>();
list.add(0, new Integer(42));
int total = list.get(0).intValue();
范型化 API 的用户必须使用 <> 符号简单地声明在编译类型中使用的类型

增强的 for 循环

Collections API 经常使用 Iterator 类。Iterator 类提供在 Collection 中顺序导航的机制。

当像下面一样只是在 Collection 中遍历时,新的增强的 for 循环可取代 iterator。

编译器生成必要的循环代码,因为利用范型,所以不需要额外的类型转换。

原来

ArrayList<Integer> list = new ArrayList<Integer>();
for (Iterator i = list.iterator(); i.hasNext();) {
Integer value=(Integer)i.next();
}

现在

ArrayList<Integer> list = new ArrayList<Integer>();
for (Integer i : list) { ... }


posted @ 2011-02-28 13:53  kanego  阅读(2021)  评论(0编辑  收藏  举报