数组
为什么需要数组?
假设现在要计算全班100个学生的java成绩,该怎么办?定义100个变量来保存每个学生的java成绩吗?这好麻烦。因此我们需要数组来为我们解决这样繁琐的事情。
定义一维数组
语法:
数据类型[] 变量名 = new 数据类型[长度];
例如:
int[] arr = new int[4];// 声明一个长度为4的数组
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public class Test {
public static void main(String args[]) {
//int[] arr = {1, 2, 3, 5};
//相当于
int[] arr; arr = new int[]{1, 2, 3, 5};
for(int i = 0; i < arr.length; i ++) {
System.out.println(arr[i]);
}
}
}
使用数组常犯错误:
int[] arr = new int[4];// 声明一个长度为4的数组
arr[4] = 3;// 数组下标越界,因为数组下标是从0开始的。
int[] arr;
arr = {2,3,4};// 如果直接是花括号的形式就必须一次性完成。
int[] arr = new int[4]{1, 2, 3, 4};// 不能给定长度
定义二维数组
语法与定义以为数组相似,只是维数不同而已。
数据类型[][] <数组变量名> = new 数据类型[行长度][列长度];
数据类型[][] <数组变量名> = {{数值1...数值n},{数值2...数值n}...{数值n...数值n+1}};
int[][] arr = {{1, 2},{3},{4, 6, 7}};
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public class Test {
public static void main(String args[]) {
int[][] arrs = {{1, 2},{3},{4, 6, 7}};// 有三行,第一行有两列,第二行有一列,第三行有3列。
for(int[] arr : arrs) {// 使用for循环增强来遍历元素
for(int e : arr) {
System.out.print(e + ", ");
}
System.out.println();
}
// 传统方式
for(int i = 0; i < arrs.length; i ++) {
for(int j = 0; j < arrs[i].length; j ++) {
System.out.print(arrs[i][j] + ", ");
}
System.out.println();
}
}
}
求最大值:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import java.util.*;
public class Test{
/**
* @param args
*/
public static void main(String[] args) {
// 声明变量
int[] score = new int[5];
int max;
// 循环给数组赋值
System.out.println("请依次录入5位学生的Java成绩:");
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
score[i] = sc.nextInt();
}
// 计算成绩最大值
max = score[0];// 假设第一个成绩是最大的
for (int index = 1; index < 5; index++) {
if (score[index] > max) {
max = score[index];
}
}
// 显示最大值
System.out.println("本次考试的五位学生的最高分是: " + max);
}
}