一、数组的定义
数组,是一组能够存储相同数据类型的变量的集合。
因为当我们面对许多相同数据类型时,如果采用单独的变量进行存储,则需要定义若干个变量名,非常繁琐,不利于维护。
1.语法
(1)使用默认的初始值来初始化数组的每一个元素
数据元素类型[ ] 数据名 = new 数据元素类型[ 数组中元素的个数];
eg:int[ ] scores = new int[3];
(2)先声明,再赋默认的初始值
数据元素类型[ ] 数据名;
数据名 = new 数据元素类型[ 数组中元素的个数]
eg:int[ ] scores;
scores = new int[3];
(3)先声明,再用指定的值进行初始化
数据元素类型[ ] 数据名 = new 数据元素类型[ ]{元素1,元素2,元素3......}
eg:int[ ] scores = new int[]{23, 45, 77};
(4)将第三种进行简化
数据元素类型[ ] 数据名 = {元素1,元素2,元素3......}
eg:int[ ] scores = {88, 90, 98}
Tips:数组的正序下标是从0开始的,逆序下标是从-1开始的。
二、数组的遍历
1.定义
遍历:指的是挨个查询数组里面的每个元素。
求数组的长度,可以调用函数:x.length (x表示的是数组名)
2.遍历方式
(1)普通的for循环
public class Test {
public static void main(String []args) {
int[] score = {66, 78, 99, 100, 89, 100};
System.out.println("数组的长度:"+score.length);
//for遍历
int len = score.length;
for(int i=0; i<len; i++){
int Score_ = score[i];
System.out.println(Score_);
}
}
}
(2)增强的foreach循环(jdk1.5之后新增的特性;这种方法只允许从头到尾全部输出)
public class Test {
public static void main(String []args) {
int[] score = {66, 78, 99, 100, 89, 100};
System.out.println("数组的长度:"+score.length);
//foreach遍历
for(int x:score){
System.out.println(x);
}
}
}
(3)可变参数(jdk1.5之后新增的;可变参数只能是参数列表中的最后一个)
public class Test {
public static void main(String []args) {
int[] score = {66, 78, 99, 100, 89, 100};
//调用方法print
print(78, 99, 100, 89, 100);
}
}
public static void print(int k, int...x){ // k是单独变量;x为可变参数,看作数组使用
int len = x.length;
for(int i=0;i<len;i++){
System.out.println(x[i]);
}
}
}
三、数组案例
1. 猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数。
import java.util.Scanner;
public class Test {
public static void main(String []args) {
int[] num = {12, 17, 44, 32, 46, 29};
Scanner input = new Scanner(System.in);
System.out.println("请输入你要猜的数:(50以内)");
int UserInput = input.nextInt();
boolean flag = false;
for(int x: num){
if(UserInput==x){
flag = true;
break;
}
}
if(flag == true)
System.out.println("恭喜你猜对了");
else
System.out.println("你的回答不正确喔,继续加油!");
}
}
2.打印正三角形:
A
B B B
C C C C C
D D D D D D D
E E E E E E E E E
F F F F F F F F F F F F
G G G G G G G G G G G G G
public class Test {
public static void main(String []args) {
char[] tangle = {'A', 'B', 'C', 'D', 'E', 'F', 'G'};
int len =tangle.length;
for(int i=1; i<=len; i++){
for(int j=i; j<len; j++){
System.out.print(" ");
}
for(int j=1; j<=i*2-1; j++){
System.out.print(tangle[i-1]);
}
System.out.println();
}
}
}
四、二维数组
Java中没有真正的多维数组,多维数组的表示方式是数组中的元素还是数组。
1.案例:程序员编程大赛有3个班参加,每个班有3名学员,请计算分别计算每个班的平均分。
public class Test {
public static void main(String []args) {
int[][] score = {{75, 77, 90}, {89, 78, 79}, {57,80,100}};
int len = score.length; //这里的len是班级的数量
for(int i=0; i<len; i++){
int sum=0;
int count = score[i].length; //这里的count是第 i 个班级的成绩数
for(int j=0; j<count; j++){
sum+=score[i][j];
}
System.out.println(sum/count);
}
}
}