概述
数组,二维数组,传递参数
- 1.数组
- 1.2 数组的基本要素:
- 1.3 使用数组四步走:
- 1.3.1静态赋值:边声明边赋值
- 1.3.2数组的复制和逆序
- 1.3.3使用System.arraycopy复制数组
- 2. 二维数组
- 2.1初始化:
- 2.1.1动态初始化
- 2.1.2静态初始化
- 2.1.3二维数组的遍历
- 命令行参数:
- 2.2传递参数
- 2.2.1使用方法
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][n];
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软件中的包
把这个包删了就可使用
如:
最后
以上就是慈祥马里奥为你收集整理的数组,传递参数1.数组2. 二维数组的全部内容,希望文章能够帮你解决数组,传递参数1.数组2. 二维数组所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复