概要:
数组零基础实战
方法零基础实战
一. Java中一维数组
1. 数组:是一组相关数据的集合,数组中的数据类型一定是完全相同;
2. 数组的三种类型:一维数组,二维数组,多维数组;
3. 要使用数组,首先要声明数组,然后要分配具体的内存给数组;
代码实现:
int scores[] = null; //声明scores为整型数组
scores = new int[10]; //为整型数据分配空间,其元素个数是
for(int x = 10;x < 10;x++){//打印出数组中每一个元素的值
System.out.println(scores[x]);
}
二: java中的二维数组
1. 二维数组相当于一个表格,数组中的每一个元素又是一个数组。
int scores[][];
scores = new int[5][2];
for(int i = 0;i < scores.length;i++){
for(int j = 0; j < scores[i].length; j++){
System.out.println(scores[i][j] + "\t");
}
System.out.println();
}
输出结果如下:
0 0
0 0
0 0
0 0
0 0
2. 使用静态初始化的方式实例化二维数组可以让元素类型为数组的具体的每一个元素的内容的长度不同。
int scores[][] = {{10,2},{31,1,4,56,3},{2,321}};
for(int i = 0;i < scores.length;i++){
for(int j = 0; j < scores[i].length; j++){
System.out.print(scores[i][j] + "\t");
}
System.out.println();
}
输出结果如下:
10 2
31 1 4 56 3
2 321
三: java中的多维数组
int scores[][][] = {{{10,2}},{{31,1,4}},{{2,321}}};
for(int i = 0;i < scores.length;i++){
for(int j = 0; j < scores[i].length; j++){
for(int k = 0; k < scores[i][j].length; k++){
System.out.print("scores["+ i + "][" + j + "][" + k + "] = " + scores[i][j][k] + "\t");
}
}
System.out.println();
}
输出结果如下:
scores[0][0][0] = 10 scores[0][0][1] = 2
scores[1][0][0] = 31 scores[1][0][1] = 1 scores[1][0][2] = 4
scores[2][0][0] = 2 scores[2][0][1] = 321
四:关于数组的范围
数组索引的范围是从0 ~数组的长度-1,在访问数组的时候必须在访问内,否则的话会出现如下错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at com.dt.java.ArrayOps.arrayMoreAdvanced(ArrayOps.java:19)
at com.dt.java.ArrayOps.main(ArrayOps.java:8)
补充说明:其实excel就是一个二维数组的实现!
五, java中方法的定义和使用
1. 方法代表一段可以复用代码集合,接受输入参数,通过代码的计算,返回执行结果;
public static int sum(int x, int y){
int result = x + y;
return result;
}
输出结果如下:
x + y = 8
public static int sum(int x, int y){
int result = x + y;
return result;
}
public static int sum(int x, int y,int z){
int result = x + y + z;
return result;
}
输出结果如下:
x + y + z = 18
int result = x + y;
return (float)result;
}
public static int sum(int x, int y){
int result = x + y;
return result;
}
public static int sum(int number){
if(number == 1){
return 1;
}else{
return number + sum(number -1);
}
}
public static void sum(int... args){
for(int x = 0; x < args.length; x++){
System.out.println(args[x] + "\t");
}
}
补充:可以使用JDK1.5推出foreach增强循环语法来更加方便的访问数组的内容。
public static void sum(int... args){
for(int arg : args){
System.out.println(args[arg] + "\t");
}
}
六: 把数组作为方法的参数传递给方法进行处理:
int[] scores = {89,97,100,88,85};
sort(scores);
for(int score : scores){
System.out.println(score + "\t");
}
}
private static void sort(int[] scores) {
for(int i = 0; i < scores.length; i++){
for(int j = 0; j < scores.length; j++){
if(scores[i] < scores[j]){
int x = scores[i];
scores[i] = scores[j];
scores[j] = x;
}
}
}
}
此时传递给方法的只是数组的引用,在方法内部改变数组引用所指向的具体的数组的内容实际上就改变了数组本身。