A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 纪艺松 中级黑马   /  2012-7-28 19:35  /  3615 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Iterator的返回类型应该就是Object不管它遍历的容器是否已有确定类型,。。迭代器的工作就是遍历并选择系列中的每一个对象,而不必关心该系类的底层结构,实现了遍历系类的操作和系列底层结构相分离;

QQ截图20120728192858.jpg (50.19 KB, 下载次数: 27)

QQ截图20120728192858.jpg

4 个回复

正序浏览
集合可以装任何东西,代表任何东西在进集合的时候都会自动提升为object的了
回复 使用道具 举报
泛型List<E>中的E定义什么类型,ListIterator作为Iterator的子接口,也要定义成ListIterator<E>,这样你迭代元素的时候就不用强转。
回复 使用道具 举报
对哦。。忘了迭代器也要类型
回复 使用道具 举报

  1. public class Test {
  2. public static void main(String[] args) {
  3.   List<String> lst1 = new ArrayList<String>();
  4.   List<String> lst2 = new ArrayList<String>();
  5.   lst1.add("java01");
  6.   lst1.add("java02");
  7.   lst1.add("java03");
  8.   lst1.add("java04");
  9.   lst1.add("java05");
  10.   ListIterator<String> it = lst1.listIterator();//[color=red]你的代码此处也要用泛型,否则他的next(),previous()方法返回值是Object[/color]
  11.   while(it.hasNext()){
  12.    System.out.print(it.next() + "\t");
  13.   }
  14.   System.out.println();
  15.   while(it.hasPrevious()){
  16.    String a = it.previous();
  17.    lst2.add(a);
  18.    System.out.print(a + "\t");
  19.   }
  20.   System.out.println();
  21. }
  22. }
复制代码
希望对你有帮助......
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马