数组,传递参数
数组,二维数组,传递参数
1.数组
什么是数组:数组是一个变量,存储相同数据类型的一组数据
声明一个变量就是在内存空间划出一块合适的空间
声明一个数组就是在内存空间划出一串连续的空间
1.2 数组的基本要素:
- 数组名称:用于区分不同的数组,也叫标识符
- 元素类型:数组元素的数据类型
- 数组元素:向数组中存放的数据
- 元素下标:对数组元素进行编号,数组中的元素通过数组中的下标进行访问,从0开始
1.3 使用数组四步走:
- 声明数组: 数据类型【】 数据名; 例如 int[] a;(一般采用)或 int a[];
- 分配空间:数据名=new 数据类型【长度】 例如:a=new int[5];
- 赋值 :数据名【下标】= 数值; 例如: a[0]=8;
- 处理数据: 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复制数组
- 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软件中的包
把这个包删了就可使用
如:
- 传递数组参数
- 数组参数传递时需要注意的事项
- php 对象数组/传递数组参数
- 数组作为函数参数时的传递问题
- Android-调用本地方法传递数组参数/NDK-JNI开发实例(五)
- jquery ajax 向后台传递数组参数示例
- 指针,数组,变量参数传递的一点总结
- Android jni中数组参数的传递方式
- 怎样把数组作为参数传递给函数
- 使用ASI传递post表单..参数是数组
- $argv — 传递给脚本的参数数组
- C#形参,实参,值传递参数,引用传递参数,输出参数,参数数组的学习(一)
- C语言基础:数组作为函数参数传递演示源码
- C#形参,实参,值传递参数,引用传递参数,输出参数,参数数组的学习(一)
- SQLSERVER 存储过程传递数组参数
- Delphi 无类型参数传递动态数组和静态数组
- ajax向后台传递数组参数
- 数组类型参数传递问题:$.ajax传递数组的traditional参数传递必须true
- 给数据库传递组合字符串参数,类似数组的解决方法
- 相同name参数传递后会自动组成数组