• JAVA中for循环语句的应用


    for循环语句

    • 普通for循环

      1 for(初始化; 布尔表达式; 更新变化条件){
      2 //循环执行的内容
      3 }
      //例子
      1 for(int i=0; i<20;i++){
      2 System.out.println(i);
      3 }
      • “初始化”一般是初始化一个变量,只执行一次,也可以是空语句

      • 判断布尔表达式,如果为true,则执行循环内容,为false则终止循环

      • “更新变化条件”执行循环内容,更新循环控制变量

      • 再次检测布尔表达式,如果为true,贼执行循环内容,为false则终止循环

    • 增强for循环

      • 增强的for循环是在传统的for循环中增加的强大的迭代功能的循环,是在jdk1.5之后提出来的

      • 引入增强for循环的原因:在JDK5以前的版本中,遍历数组或集合中的元素,需要先获得数组的长度或集合的迭代器,比较麻烦。

        JDK5中定义了一种新的语法----增强for循环,以简化此类操作。增强for循环只能用在数组或实现Iterable接口的集合上。

       1 for(声明变量量类型:被遍历的集合(collection)或者数组){
       2 //循环内容
       3 }
       4 import java.util.ArrayList;
       5 import java.util.List;
       6  7 ...
       8  9 // 增强for循环
      10 int[] num = {1,2,3,4,5,6};
      11 for(int i: num){
      12     System.out.print(i);
      13 }
      14 15 17 18 //迭代增强for循环
      19 public class ForTest01 {
      20 21     public static void main(String[] args) {
      22         List<String> list = new ArrayList<>();
      23         list.add("a");
      24         list.add("b");
      25         list.add("c");
      26         list.add("d");
      27 28 //增强for循环,优点是可以简化遍历
      29     for(String s : list){
      30        System.out.println(s);
      31       }
      32   }
      33 }
      • 声明变量类型是局部变量量,该变量的类型必须和集合或者数组元素的类型一致

      • 在JAVA中,遍历集合和数组一般有以下三种形式:

        • 第一种是普通的for循环遍历、第二种是使用迭代器进行遍历,第三种我们一般称之为增强for循环(for each

       1 for (int i = 0; i < list.size(); i++) { 
       2     System.out.println(list.get(i) ); 
       3 }   
       4  5 Iterator iterator = list.iterator(); 
       6 while (iterator.hasNext()) {  
       7     System.out.println(iterator.next());
       8 }   
       9 10 for (Integer i : list) {  
      11     System.out.println(i);
      12 }
    • 集合框架中的三种迭代方式删除数据 1.普通for循环,可以删除,注意让索引做自减运算 2.迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常 3.增强for循环不能删除

     1 import java.util.ArrayList;
     2 import java.util.Iterator;
     3 import java.util.List;
     4  5 // 集合框架中的三种迭代方式删除数据
     6  
     7 public class ForTest02 {
     8  9     public static void main(String[] args) {
    10         List<String> list = new ArrayList<>();
    11         list.add("a");
    12         list.add("b");
    13         list.add("b");
    14         list.add("c");
    15         list.add("d");
    16 17 //1,普通for循环删除,索引做自减运算
    18         for(int i = 0; i < list.size(); i++) {
    19             if("b".equals(list.get(i))) {
    20                 list.remove(i);        
    21                 i--;
    22             }
    23         }
    24 25 //2,迭代器删除
    26         for(ListIterator<String> iter = list.listIterator(); iter.hasNext();){
    27             if("b".equals(iter.next())) {
    28                 iter.remove();
    29             }
    30         }
    31 //3,增强for循环不能删除,ConcurrentModificationException
    32         for (String string : list) {
    33             if("b".equals(string)) {
    34                 list.remove("b");
    35             }
    36         }
    37         System.out.println(list);
    38     }
    39 }

     

  • 相关阅读:
    转移虚拟机后ubuntu network available SIOCSIFADDR: No such device
    模板中国剩余定理
    数论 CF27E Number With The Given Amount Of Divisors
    模板 输入输出优化
    模板 欧拉定理
    洛谷P1141 01迷宫
    图论拓扑排序
    归并排序 分治
    HZNUACM寒假集训Day12小结 数论入门 题解
    组合数学基础
  • 原文地址:https://www.cnblogs.com/jyuri/p/12084084.html
Copyright © 2020-2023  润新知