您的位置:首页 > 其它

数组,传递参数

2019-04-11 20:33 183 查看

数组,二维数组,传递参数

  • 2. 二维数组
  • 命令行参数:
  • 2.2传递参数
  • 1.数组

    什么是数组:数组是一个变量,存储相同数据类型的一组数据

    声明一个变量就是在内存空间划出一块合适的空间
    声明一个数组就是在内存空间划出一串连续的空间

    1.2 数组的基本要素:

    1. 数组名称:用于区分不同的数组,也叫标识符
    2. 元素类型:数组元素的数据类型
    3. 数组元素:向数组中存放的数据
    4. 元素下标:对数组元素进行编号,数组中的元素通过数组中的下标进行访问,从0开始

    1.3 使用数组四步走:

    1. 声明数组: 数据类型【】 数据名; 例如 int[] a;(一般采用)或 int a[];
    2. 分配空间:数据名=new 数据类型【长度】 例如:a=new int[5];
    3. 赋值 :数据名【下标】= 数值; 例如: a[0]=8;
    4. 处理数据: a[0]=a[0]*10; 得到 a[0]= 80;

    1.3.1静态赋值:边声明边赋值

    数据类型【】 数据名= new 数据类型【】{元素1,•••••,元素n};
    数据类型【】 数据名={元素1,•••,元素n};
    列如:

    int[] score={88,56,30};
    for(int i=0;i<5;i++){
    a[i]=input.nextInt();
    }

    1.3.2数组的复制和逆序

    数组的复制使用到克隆方法:使用.clone()的工具
    例如:
    //复制数组(相当于新建了一个数组),将object 类型强制转换成 int[ ] 类型

    int[] newRand = (int[])rand.clone();

    逆序:也是定义了一个新数组
    例如:
    //要先声明和定义好新数组的长度

    for(int i= 0 ;i<score1.length ;i++) {
    newScore2[i]=score1[score.length-i-1];
    }

    1.3.3使用System.arraycopy复制数组

    1. System.arraycopy方法
    System.arraycopy(from, fromIndex, to, toIndex, count)

    from为源数组
    fromIndex为源数组起始下标
    to为目的数组
    toIndex为目的数组起始下标
    count为复制的元素个数
    例如:

    int c[] = {1,2,3,4};
    int d[] = new int[4];
    System.arraycopy(c, 0, d, 0, 4);

    2. 二维数组

    二维数组:元素为一维数组的数组
    定义:(三种方法)
    1. 元素类型 数组名[][]
    2. 数据类型[] 数组名[]
    3. 元素类型[][] 数组名(推荐使用);
    如: int[][] iArray;

    2.1初始化:

    2.1.1动态初始化

    数据类型[][]数组名=new数据类型[m]
    ;
    m:表示二维数组中的一维数组个数
    n:表示一维数组中的元素个数

    2.1.2静态初始化

    数据类型[][] 数组名=new数据类型[][]{{元素…},{元素…},{元素…}};
    简化格式
    数据类型[][] 数组名={{元素…},{元素…},{元素…}}

    2.1.3二维数组的遍历

    二维数组在空间上不一定是连续的,且数组的形状可以是任意的。可用二重循环遍历数组,代码片段为:

    //在二维数组中,array.length表示的是二维数组的元素个数
    //而array[i].length表示的是二维数组中第i+1个一维数组的元素个数
    
    for (int i = 0; i < array.length; i++) {
    for (int j = 0; j < array[i].length; j++) 	{
    //do some operation on array[i][j]
    }
    }

    命令行参数:

    main方法都可以传入参数,这被称为命令行参数。
    语法
    java 字节码文件 参数1 参数2 参数3

    2.2传递参数

    Main方法的声明与众不同,它具有String[]类型参数args。很明显的,args是一个字符串数组。main方法就像一个带参数的普通方法。可以通过传递实参来调用一个普通方法。那么问题来了,能给main方法传递参数吗?如果能怎么传递呢?

    //在类example5中写了字符串strings传递给example55,调用了example55的main方法
    public class examp5 {
    public static void main(String[] args) {
    //定义字符串数组
    String[] strings = {"nanjing","beijing","shanghai"};
    //调用example55文件的main函数
    //在方法定义中关键字为static是静态方法,可以直接使用类名调用
    example55.main(strings);
    }
    }
    
    //类example55中的源文件
    public class example55 {
    public static void main(String[] args) {
    //字符串数组的遍历
    for (int i = 0; i < args.length; i++) {
    System.out.println(args[i]);
    }
    }

    2.2.1使用方法

    向main方法传递字符串,运行程序时,可以从命令行给main方法传递字符串参数。
    先编译example55.java文件得到example55.class文件
    在执行example55.class文件,但是提醒我找不到文件。是因为在windows系统中不能识别eclipse软件中的包

    把这个包删了就可使用
    如:

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: