• 数组


    • 数组(array)

    – 元素(element)、下标(subscript)
    – 一维数组、二维数组
    – 遍历:依次访问集合中的每个元素,将所有元素逐个处理一遍

    • 定义数

    – 先定义数组类型的引用变量
    int iArray[ ]; // 定义一个int型数组的引用变量iArray
    int [ ]iArray; // 定义一个int型数组引用变量iArray
    – 再创建数组
    iArray = new int[5];为数组动态分配内存
     
    定义和创建合并成一步:int iArray[ ] = new int[5]; // 定义引用变量的同时创建数组

    • 定义数组时的初始化

    int iArray[ ] = { 2, 4, 6 };
    • 数组的语法细则
    int iArray[ ] = new int[5];
    int aRef[ ] = iArray; 与iArray引用同一个数组对象
    iArray.length
    aRef.length
    数组只能保存相同数据类型的集合,使用运算符new创建数组时,各数组元素,会被初始化为空值

    • 访问数组

    – 访问数组中的元素

    int iArray[ ] = new int[5];
    iArray[0]、iArray[1]、iArray[2]、iArray[3]、iArray[4]
    iArray[0] = 10 ;
    iArray[1] = 20 ;
    System.out.println( iArray[0] ); // 显示结果:10
    System.out.println( iArray[1] ); // 显示结果:20
    System.out.println( iArray[2] ); // 显示结果:0
    System.out.println( iArray[ 5 ] );程序执行出错,中途退出
    System.out.println( iArray[ -1 ] );
    int aRef[ ] = iArray;与iArray引用同一个数组对象
    System.out.println( aRef[0] ); // 显示结果:10

    – 数组的遍历

    例3-15 一个遍历数组的Java演示程序(ArrayDemo.java)
     1 public class ArrayDemo { // 主类
     2 public static void main(String[] args) { // 主方法
     3     int iArray[ ] = { 2, 4, 6, 8, 10 }; // 定义一个int型数组iArray,定义时初始化
     4     for (int n = 0; n < iArray.length; n++) // 遍历数组,逐个显示各数组元素的值
     5         System.out.println( iArray[n] ); // 显示第n个元素的值
     6 // 遍历数组,计算各数组元素的累加和
     7     int sum = 0;
     8     for (int n = 0; n < iArray.length; n++)
     9         sum += iArray[n]; // 累加第n个数组元素
    10     System.out.println( sum );
    11     char cArray[ ] = { 'C', 'h', 'i', 'n', 'a' }; // 定义一个字符型数组cArray,定义时初始化
    12     for (int n = 0; n < cArray.length; n++) { // 遍历数组,将所有小写字母改为大写
    13         if (cArray[n] >= 'a' && cArray[n] <= 'z’) // 检查第n个元素是否小写字母
    14                 cArray[n] -= 32; // 如果是,则将小写字母改为大写
    15     }
    16     System.out.println( cArray ); // 只有字符数组才能整体输出,显示结果:CHINA
    17 }
    18 }

    – 增强for语句

    例3-16 一个遍历数组(增强for语句)的Java演示程序(EnhancedFor.java)
     1 public class EnhancedFor { // 主类
     2     public static void main(String[] args) { // 主方法
     3         int iArray[] = { 2, 4, 6, 8, 10 }; // 定义一个int型数组iArray,定义时初始化
     4         for (int x : iArray) // 增强for语句:依次将数组iArray中的元素取出来,赋值给x
     5             System.out.println(x); // 显示所取出的值
     6 // 遍历数组,计算各数组元素的累加和
     7         int sum = 0;
     8         for (int x : iArray) // 增强for语句:计算各数组元素的累加和
     9             sum += x; // 累加所取出的值
    10         System.out.println(sum);
    11         char cArray[] = { 'C', 'h', 'i', 'n', 'a' }; // 定义一个字符型数组cArray,定义时初始化
    12         for (char x : cArray) { // 增强for语句:依次将数组cArray中的元素取出来,赋值给x
    13             if (x >= 'a' && x <= 'z') // 检查所取出的字符是否小写字母
    14                 x -= 32; // 将小写字母改为大写。注:此处只能修改x,无法修改数组元素
    15         }
    16         System.out.println(cArray); // 显示结果:China
    17 // 可以看出,当需要修改数组元素时,还是只能用普通for语句
    18     }
    19 }

    • 可变长形参

    语法细则:①可变长形参中,形参的个数可变,但是要求各形参的数据类型是相同的,即可变形长形参只能有一种数据类型②调用可变长形参的方法时,可以向可变型形参传递零个或任意多个实参③可变长形参,是以数组的形式来接受实参的

    – 通常,一个方法中的形参个数是确定的
      int max(int x, int y) { …… }
      int max(int x, int y, int z) { …… }
    – 是否可以定义一个求任意多个数最大值的方法呢?
      int max(int x1, int x2,) { …… }
    – Java可变长参数语法 不是一个变量,而是一个数组,该数组按位置顺序依次保存调用方法时所传递的实参值,可以通过数组的属性成员length来得到实参的个数
      int max(int varArgs) { // 在可变长形参名之前加“…”(3个点)
    …… // 求最大值算法
    }
     
    例3-17 一个具有可变长形参的求最大值方法Java演示程序(VarArgument.java)
     1 public class VarArgument { // 主类
     2     public static int max(int... varArgs) { // 具有可变长形参的求最大值方法
     3 // 可变长形参varArgs所接收到的实参是以数组形式存放的,varArgs是一个数组
     4         if (varArgs.length < 1)
     5             return 0; // 如果没有传递实参,则直接返回0
     6         int result = varArgs[0]; // 先假设第0个元素就是最大值
     7         for (int n = 1; n < varArgs.length; n++) { // 求数组元素中的最大值
     8             if (varArgs[n] > result)
     9                 result = varArgs[n];
    10         }
    11         /*
    12          * 也可使用以下的增强for语句来求最大值 for (int e : varArgs) { if (e > result) result = e; }
    13          */
    14         return result;
    15     }
    16 
    17     public static void main(String[] args) { // 主方法
    18         System.out.println(max(2, 4)); // 传递2个实参,显示结果:4
    19         System.out.println(max(2, 4, 6)); // 传递3个实参,显示结果:6
    20         System.out.println(max(2, 4, 6, 8)); // 传递4个实参,显示结果:8
    21         System.out.println(max(2)); // 传递1个实参,显示结果:2
    22         System.out.println(max()); // 不传递实参,显示结果:0
    23     }
    24 }
  • 相关阅读:
    每日总结:DIV弹层遮盖、DIV设置透明背景色、JS调用SharePoint 中的SP.UI.ModalDialog弹出遮盖层显示
    八、WinForm客户端的配置与使用
    11.1 使用框架应具备哪些知识或技能?
    五、框架的结构
    11.2 如何取得汉字的拼音或者拼音首字母缩写?
    九、IBeamMDAA的Web客户端的配置与使用
    六、框架的应用服务器配置
    十、IBeamUtility的使用
    七、IBeamMDAA在IIS宿主服务器的配置
    三、框架的目标与解决的问题
  • 原文地址:https://www.cnblogs.com/lijingxiang/p/13985874.html
Copyright © 2020-2023  润新知