您当前的位置: 首页 >  Java

wespten

暂无认证

  • 0浏览

    0关注

    899博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

深入学习java源码之ArrayList.iterator()与ArrayList.listIterator()

wespten 发布时间:2019-01-01 21:50:22 ,浏览量:0

深入学习java源码之ArrayList.iterator()与ArrayList.listIterator()

内部类的使用典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建其的外层类的对象。所以你可以认为内部类提供了某种进入其外层类的窗口。     使用内部类最吸引人的原因是:每个内部类都能独立地继承自一个(接口的)实现,所以无论外层类是否已经继承了某个(接口的)实现,对于内部类都没有影响。如果没有内部类提供的可以继承多个具体的或抽象的类的能力,一些设计与编程问题就很难解决。从这个角度看,内部类使得多重继承的解决方案变得完整。接口解决了部分问题,而内部类有效地实现了“多重继承”。

         ArrayList list = new ArrayList();         
         list.add(null);
         list.add("abc1");
         list.add("abc2");
         list.add("abc3");
         list.add("abc4");
         /*
          * 使用迭代器遍历集合
          */
         //获取迭代器
        Iterator it = list.iterator();
         //使用while遍历集合
        while(it.hasNext()){
             String s = it.next();             
             /*
              * 判断集合中有没有"abc3"这个元素
              * 如果有,增加一个元素"itcast"
              * 编程技巧:使用equals判断的时候,要把已知的变量写在前边,未知的写在后边,防止空指针异常
              */
             //if(s.equals("abc3")){
             if("abc3".equals(s)){
                 //1.迭代就是迭代,不要对集合进行修改
                 //list.add("itcast");
             }             
             System.out.println(s);
         }         
        
         /*
          * 2.使用迭代器Iterator的子接口ListIterator中的方法add/remove,让迭代器自己增加往集合中增加元素/移除元素
          */
         ListIterator listIt = list.listIterator();
         while(listIt.hasNext()){
             String s = listIt.next();
             if("abc3".equals(s)){
                 listIt.add("itcast");
             }
             System.out.println(s);
         }
         System.out.println(list);
     }

集合类(包括List)现在都有一个forEach方法,对元素进行迭代(遍历),所以我们不需要再写for循环了。forEach方法接受一个函数接口Consumer做参数,所以可以使用λ表达式。 这种内部迭代方法广泛存在于各种语言,如C++的STL算法库、python、ruby、scala等。

    for(Object o: list) { // 外部迭代
        System.out.println(o);
    }

可以写成:

    list.forEach(o -> {System.out.println(o);}); //forEach函数实现内部迭代

 

 

java源码

一个集合的迭代器。 Iterator需要的地方Enumeration在Java集合框架。 迭代器有两种不同的枚举方式:  迭代器允许调用者在迭代期间从底层集合中删除元素,并具有明确定义的语义。  方法名称得到改进。

Modifier and TypeMethod and DescriptionvoidforEach(Consumer
关注
打赏
1665965058
查看更多评论
0.0417s