zoukankan      html  css  js  c++  java
  • java学习笔记21(迭代器)

    java中有很多集合,内部有各种的存储的方法,取出的方法也各不相同,那么有没有一种通用的方法来取出来呢?

    java提供的遍历集合元素的方法有两种:

      1.for-each结构(增强型for循环)

        格式: for(Object obj:collection)System.out.println(obj);//表示一行输出一个元素 用法举例:

    import java.util.ArrayList;
    
    public class Demo2 {
        public static void main(String[] args) {
            forlxDemo();
        }
        private static void  forlxDemo(){
            ArrayList<String> arr=new ArrayList();
            arr.add("abc");
            arr.add("def");
            arr.add("ghi");
            for (String s : arr) {//增强性for循环,优点:代码少了,方便遍历,缺点:没有下标,无法操作集合的元素
                System.out.println(s);
            }
        }
    }

      2.iterator(迭代器)

         迭代器:Iterator接口,翻译成中文是迭代器;典型用法如下

    Iterator it = c.iterator();//用于创建一个迭代器对象
    while (it.hasNext()) {//it.hasNext()判断迭代器中是否有下一个元素,如果有返回true。Iterator中的next方法返回迭代其中的下一个元素
            Object next =  it.next();//取出下一个元素
    }

    举例说明:

    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    public class Demo1 {
        public static void main(String[] args) {
            IteratorDemo();
        }
    
        private static void IteratorDemo() {
            //集合可以指定存储类型,也可以不写
            //集合中可以存储任意类型的对象,但是只能存储同一种类型的
            Collection c=new ArrayList();
            c.add("hello");
            c.add("java");
            Iterator it = c.iterator();//用于创建一个迭代器对象
            while (it.hasNext()) {//it.hasNext()判断迭代器中是否有下一个元素
                String str = (String) it.next();//it.next()默认返回Object类型,强转为String类型
           /*if(str.equals("hello")){//迭代器的并发异常,不允许在迭代过程中,修改集合,这段代码会报错,
              c.add("world");
            }*/
    System.out.println(str); } } }
  • 相关阅读:
    led呼吸灯
    定时器中断
    npgsql
    中断
    PAT (Advanced Level) 1128~1131:1128N皇后 1129 模拟推荐系统(set<Node>优化) 1130 中缀表达式
    PAT (Advanced Level) 1132~1135:1132 模拟 1133模拟(易超时!) 1134图 1135红黑树
    PAT (Advanced Level) 1136~1139:1136模拟 1137模拟 1138 前序中序求后序 1139模拟
    PAT (Advanced Level) 1140~1143:1140模拟 1141模拟 1142暴力 1143 BST+LCA
    PAT (Advanced Level) 1144~1147:1145Hash二次探查 1146拓扑排序 1147堆
    python实现http接口测试
  • 原文地址:https://www.cnblogs.com/Zs-book1/p/10571855.html
Copyright © 2011-2022 走看看