数组概念
![image-20210116092645758](https://img2020.cnblogs.com/blog/2163687/202102/2163687-20210214232116578-1214038769.png)
![image-20210116092725660](https://img2020.cnblogs.com/blog/2163687/202102/2163687-20210214232116009-1517065083.png)
一维数组
![image-20210116092926061](https://img2020.cnblogs.com/blog/2163687/202102/2163687-20210214232115621-603866766.png)
![image-20210116093130656](https://img2020.cnblogs.com/blog/2163687/202102/2163687-20210214232115275-1645798098.png)
![image-20210116093230434](https://img2020.cnblogs.com/blog/2163687/202102/2163687-20210214232114986-1533018777.png)
![image-20210116093324922](https://img2020.cnblogs.com/blog/2163687/202102/2163687-20210214232114711-458720817.png)
![image-20210116093438032](https://img2020.cnblogs.com/blog/2163687/202102/2163687-20210214232114372-2055484457.png)
练习1:打印电话号
package com.atguigu.exer;
public class ArrayDemo01 {
public static void main(String[] args){
String tel = "";
int[] arr1 = new int[]{6,7,4,2,1,3,9,8,5};
int[] index = new int[]{4,5,8,3,2,8,1,0,2,7,6};
for(int i = 0; i < index.length; i++){
tel += arr1[index[i]];
}
System.out.println(tel);
}
}
练习2:评价学生考试成绩
package com.atguigu.exer;
/*
* 从键盘读入学生成绩,找出最高分, 并输出学生成绩等级。
* 成绩>=最高分-10 等级为’A’
* 成绩>=最高分-20 等级为’B’
* 成绩>=最高分-30 等级为’C’
* 其余 等级为’D’
*
* 提示:先读入学生人数,根据人数创建int数组, 存放学生成绩。
*
*/
import java.util.Scanner;
public class ArrayDemo02 {
public static void main(String[] args) {
// 1.获得用户数量
Scanner scanner = new Scanner(System.in);
System.out.print("请输入学生人数: ");
int stuNumber = scanner.nextInt();
// 2.根据用户输入的长度,创建数组
int[] arrNumber = new int[stuNumber];
// 3.根据用户输入的人数,依次读取成绩,存入到数组中,找出最高成绩,并输出
int max = 0;
for (int i = 0; i < arrNumber.length; i++) {
arrNumber[i] = scanner.nextInt();
if (arrNumber[i] > max) {
max = arrNumber[i];
}
}
System.out.println("最高分数为: " + max);
// 4.依照最高分数,判断其他人的成绩
for (int i = 0; i < arrNumber.length; i++) {
System.out.print("student " + i + " score is " + arrNumber[i] + " grade is ");
if (arrNumber[i] >= max - 10) {
System.out.println("A");
} else if (arrNumber[i] >= max - 20) {
System.out.println("B");
} else if (arrNumber[i] >= max - 30) {
System.out.println("C");
} else {
System.out.println("D");
}
}
}
}
多维数组
![image-20210116110318491](https://img2020.cnblogs.com/blog/2163687/202102/2163687-20210214232113959-611516013.png)
![image-20210116110411214](https://img2020.cnblogs.com/blog/2163687/202102/2163687-20210214232113288-870173484.png)
![image-20210116110529724](https://img2020.cnblogs.com/blog/2163687/202102/2163687-20210214232112922-996301191.png)
![image-20210116110745881](https://img2020.cnblogs.com/blog/2163687/202102/2163687-20210214232112478-1369015895.png)
练习1:判断执行结果
![image-20210117095041001](https://img2020.cnblogs.com/blog/2163687/202102/2163687-20210214232111870-1960201264.png)
练习2:打印杨辉三角
package com.atguigu.java;
/*
* 使用二维数组打印一个 10 行杨辉三角
*
*/
public class ArrayDemo02 {
public static void main(String[] args){
//1.创建一个二维数组
int[][] yangHui = new int[10][];
//2.为二维数组的头尾各赋值1
for(int i = 0; i < yangHui.length; i++){
yangHui[i] = new int[i+1];
yangHui[i][0] = 1;
yangHui[i][i] = 1;
//3.将第三步合入第二步中,将剩余空间进行赋值
for(int j = 1; j < yangHui[i].length - 1; j++){
yangHui[i][j] = yangHui[i-1][j-1]+yangHui[i-1][j];
}
}
//3.打印测试
for(int i = 0; i < yangHui.length; i++){
for(int j = 0; j < yangHui[i].length; j++){
System.out.print(yangHui[i][j] + " ");
}
System.out.println();
}
}
}
练习3:拓展思考题
package com.atguigu.java;
import java.util.Arrays;
/*
* 创建一个长度为6的int型数组,要求数组元素的值都在1-30之间,且是随机赋值。
* 同时,要求 元素的值各不相同。
*/
public class ArrayDemo03 {
public static void main(String[] args){
//1.创建数组
int[] result = new int[6];
//2.产生随机数进行赋值
for(int i = 0; i < result.length; i++){
int randNumber = (int)(Math.random()*30+1);
result[i] = randNumber;
//判断数组中是否有重复的数字
for(int j = 0; j < i; j++){
if(result[i]==result[j]){
i--;
break;
}
}
}
//3.测试输出
System.out.println(Arrays.toString(result));
}
}