zoukankan      html  css  js  c++  java
  • java中for循环的6种写法

    废话不必多说,直接上代码:
     
    package stytle;
     
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
     
    /**
    * @author buru
    * @date 2009年11月29日15:04:04
    * */
    public class ForLoop {
     
    /**
    * just for test
    *
    * @param args
    */
    public static void main(String[] args) {
     
       List<String> list = new ArrayList<String>();
       list.add("sha");
       list.add("lie");
       list.add("bao");
     
       /**
       * 方法一:最普通的不加思考的写法
       * <p>
       * 优点:较常见,易于理解
       * <p>
       * 缺点:每次都要计算list.size()
       */
       for (int i = 0; i < list.size(); i++) {
        System.out.println(list.get(i));
       }
       /**
       * 方法二:数组长度提取出来
       * <p>
       * 优点:不必每次都计算
       * <p>
       * 缺点:1、m的作用域不够小,违反了最小作用域原则 2、不能在for循环中操作list的大小,比如除去或新加一个元素
       */
       int m = list.size();
       for (int i = 0; i < m; i++) {
        System.out.println(list.get(i));
       }
       /**
       * 方法三:数组长度提取出来
       * <p>
       * 优点:1、不必每次都计算 2、所有变量的作用域都遵循了最小范围原则
       * <p>
       * 缺点:1、m的作用域不够小,违反了最小作用域原则 2、不能在for循环中操作list的大小,比如除去或新加一个元素
       */
       for (int i = 0, n = list.size(); i < n; i++) {
        System.out.println(list.get(i));
       }
       /**
       * 方法四:采用倒序的写法
       * <p>
       * 优点:1、不必每次都计算 2、所有变量的作用域都遵循了最小范围原则
       * <p>
       * 缺点:1、结果的顺序会反 2、看起来不习惯,不易读懂
       * <p>
       * 适用场合:与显示结果顺序无关的地方:比如保存之前数据的校验
       */
       for (int i = list.size() - 1; i >= 0; i--) {
        System.out.println(list.get(i));
       }
       /**
       * 方法五:Iterator遍历
       * <p>
       * 优点:简洁
       * <p>
       * 缺点:
       */
       for (Iterator<String> it = list.iterator(); it.hasNext();) {
        System.out.println(it.next());
       }
       /**
       * 方法六:jdk1.5新写法
       * <p>
       * 优点:简洁结合泛型使用更简洁
       * <p>
       * 缺点:jdk1.4向下不兼容
       */
       for (Object o : list) {
        System.out.println(o);
       }
     
    }
    }

  • 相关阅读:
    函数
    python操作文件
    POJ-2689-Prime Distance(素数区间筛法)
    POJ-2891-Strange Way to Express Integers(线性同余方程组)
    POJ-2142-The Balance
    POJ-1061-青蛙的约会(扩展欧几里得)
    Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing
    Educational Codeforces Round 75 (Rated for Div. 2) C. Minimize The Integer
    Educational Codeforces Round 75 (Rated for Div. 2) B. Binary Palindromes
    Educational Codeforces Round 75 (Rated for Div. 2) A. Broken Keyboard
  • 原文地址:https://www.cnblogs.com/stupidMartian/p/6103978.html
Copyright © 2011-2022 走看看