1、数组的概述
多个相同类型数据按一定顺序排列的集合。并使用一个名字命名,通过编号的方式对这些数据进行统一的管理。
2、数组的相关概念:
》数组名
》元素
》角标、下标、索引
》数组的长度:元素的个数
3、数组的特点:
①数组是有序排列的
②数组属于引用数据类型的变量,数组的元素既可以是基本数据类型,又可以是引用数据类型。
③创建数组对象会在内存中开辟一整块连续的空间。
④数组的长度一旦确定,就不能修改。
4、数组的分类
①按维数:一维数组、二维数组······
②按数组元素的类型:个元素基本数据类型的数组、引用数据类型的数组
5、一维数组的使用
①一维数组的声明和初始化
②如何调用数组指定位置的元素
③如何获取数组的长度
④如何遍历数组
⑤数组元素的默认初始化值
⑥数组的内存解析
1、初始化
当数组申明在同一行时可以省略new int[]
总结:数组一旦初始化完成,其长度就确定了。
2、如何调用数组的指定位置的元素:通过角标(从0开始,到数组长度-1结束)的方式调用。
3、如何获取数组长度
属性:length
4、如何遍历数组
5、数组元素的默认初始化值
>数组元素是整型:0
>数组元素是浮点型:0.0
>数组元素是char型:0或'\u000',而非'0'
>数组元素是boolean型:false
>数组元素是引用数据类型:null
6、数组的内存解析
一维数组的内存解析
练习一:
从键盘读入学生成绩,找出最高分,
并输出学生成绩等级。
Ø成绩>=最高分-10 等级为’A’
Ø成绩>=最高分-20 等级为’B’
Ø成绩>=最高分-30 等级为’C’
Ø其余 等级为’D’
package shuzu.exer;
import java.util.Scanner;
public class ArrayDemo1 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in); // 快捷方式:ctrl+shift+o
System.out.println("请输入学生个数:");
int number = scanner.nextInt(); // 快捷方式:ctrl+1
int[] scores=new int[number];
int maxScores=0;
System.out.println("请输入"+number+"个学生成绩 :");
for(int i=0;i<scores.length;i++)
{
scores[i]=scanner.nextInt();
if(maxScores<scores[i])
{
maxScores=scores[i];
}
}
char level;
for(int i=0;i<scores.length;i++)
{
if(maxScores-scores[i]<=10)
level='A';
else if(maxScores-scores[i]<=20)
level='B';
else if(maxScores-scores[i]<=30)
level='C';
else
level='D';
System.out.println("student "+i+" scores is "+scores[i]+",grade is "+level);
}
}
}
二维数组
1、理解:对于二维数组,可看成是一维数组array1有作为另一个一维数组array2的元素而存在。从数组底层的运行机制来说,没有多维数组。
2、二维数组的使用
规定:二维数组分为外层数组元素和内层数组元素
int[ ][ ] arr = new int[4][3]
外层元素:arr[0],arr[1]等
内层元素:arr[0][0],arr[1][2]等
①二维数组的声明和初始化
②如何调用数组指定位置的元素
③如何获取数组的长度
④如何遍历数组
⑤数组元素的默认初始化值
⑥数组的内存解析
1、初始化
2、如何调用数组指定位置的元素
3、如何获取数组的长度
4、如何遍历数组
5、数组元素的默认初始化值
针对于初始化方式一:比如:int[ ][ ] arr = new int [4][3];
>数组元素是整型:0
>数组元素是浮点型:0.0
>数组元素是char型:0或'\u000',而非'0'
>数组元素是boolean型:false
>数组元素是引用数据类型:null
练习2:
使用二维数组打印一个 10 行杨辉三角。
1. 第一行有 1 个元素, 第 n 行有 n 个元素
2. 每一行的第一个元素和最后一个元素都是 1
3. 从第三行开始, 对于非第一个元素和最后一个元
素的元素。
package shuzu.exer;
public class YangHuiTest {
public static void main(String[] args) {
int[][] yangHui=new int[10][];
for(int i=0;i<yangHui.length;i++){
yangHui[i]=new int[i+1];
yangHui[i][0]=yangHui[i][i]=1;
for(int j=1;j<yangHui[i].length-1;j++){
yangHui[i][j]=yangHui[i-1][j-1]+yangHui[i-1][j];
}
}
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(" ");
}
}
}