CHAPTER

数组



使用数组进行基本运算

一维数列

-在JAVA中,数组是用来存储一组相同类型数据的数据结构。当数组初始化完毕后,JAVA为数组在内存中分配一段连续的空间,其在内存中开辟的空间没有保存任何数据,数组所占据的空间依然存在。

-定义数组
-语法
数据类型[] 数组名=new数据类型[数组长度];
数据类型 数组名[]=new 数据类型[数组长度];

-定义数组时一定要指定数组名和数据类型

-必须书写“[]”,表示定义了一个数组,而不是一个普通的变量

-“[数组长度]”决定连续分配的空间的个数,通过数组的length属性可获取此长度

-数组的数据类型用于确定分配的每个空间的大小

-使用两种语法分别定义整型数组scores与字符串数组cities,scores的长度是5,cities的 长度是6

int[] scores=new int[5];
String cities[]=new String[6];
数组元素分配的初始值
数组元素类型默认初始值
byte、short、int、long0
float、double0.0
char‘\u0000’
booleanfalse
引用数据类型null
-数组元素的表示与赋值

-由于定义数组时内存分配的是连续的空间,所以数组元素在数组里顺序排列编号,该编号即元素下标,它标明了元素在数组中的位置。

-数组是一个变量,存储相同数据类型的一组数据

-声明一个变量就是在内存空间划出一块适合的空间

-声明一个数组就是在内存空间划出一串连续的空间

-数组的基本要素

标识符

数组元素

元素的下标:从0开始

元素类型

*数组长度固定不变,避免数组越界

-语法
数组名[下标值]
-如何使用数组(数组四步走)

1.声明数组

int[] a;

2.分配空间

a = new int[5];

3.赋值

a[0] = 8;

4.处理数据

a[0] = a[0]*10;
int[] score1;	//JAVA成绩
int score2[];	//C#成绩
String[] name;	//学生姓名
-数组的初始化

所谓数组初始化,就是在定义数组的 同时一并完成赋值操作

-语法
数据类型[]数组名={值1,值2,值3,······,值n};
-数组的赋值方法

-方法1 边声明边赋值

int[] scores = {89,79,76};
int[] scores = new int[]{89,79,76};

-方法2 动态地从键盘录入信息并赋值

Scanner input = new Scanner(System.in);
for(int i=0;i<30;i++){scores[i] = input.nextInt();
}

eg:

public staticvoid main(String[] args){int[] scores = {89,80,50}; //声明同时赋值System.out.peintln(scores[0]);
}
public staticvoid main(String[] args){int[] scores = new int[]{89,80,50};//声明同时赋值System.out.peintln(scores[0]);
}
public staticvoid main(String[] args){Scanner sc = new Scanner(System.in);int[] scores = new int[5];for(int i=0;i<5;i++){System.out.println("请输入第"+"门成绩");score[i] = sc.nextInt();}int total = 0;for(int i=0;i<5;i++){total += scores[i];}System.out.println("第三个人的成绩是:"+scores[2]);System.out.println("成绩的总和是:"+total)
}
-遍历数组

在编写程序时,数组和循环往往结合在一起使用,可以大大地简化代码,提高程序编写效率。通常使用for循环遍历数组

-创建整型数组,从控制台接收键盘输入的整型数,并对数组进行循环赋值

1.创建整型数组

2.创建Scanner对象

3.将循环变量i作为数组下标,循环接收键盘输入,并为数组元素赋值

public static void main(String[] args);{int scores[]=new int[5];				//创建长度为5的整型数组Scanner input = new Scanner(System.in);for(int i=0;i<scores.length;i++){		//scores.length等于数组的长度5score[i]=input.nextInt();			//从控制台接收键盘输入,进行循环赋值}
}        

-使用for循环为数组元素赋值,再使用for循环输出数组元素

public static void main(String[] args){int scores[]={75,67,90,100,0};		//创建有5个元素的整型数组for(int i=0;i<scores.length;i++){	//length等于5//每次循环i的值相当于数组下标System.out.println("scores["+i+"]="+scores[i]);}
}

步骤:

1.初始化整型数组

2.以循环变量i作为数组下标,循环输出数组元素

JDK1.5之后提供了增强for循环语句,用来实现对数组和集中数据的访问,增强for循环的语法如下:

-语法

for(元素类型 变量名:要循环的数组或集合名){······}

第一个元素是数组或集合中元素的类型,变量名在循环时用来保存每个元素的值,冒号后面是要循环的数组或集合名称。

-使用增强for循环输出数组元素

public static void main(String[] args){int scores[]={75,67,90,100,0};for(int i:scores){System.out.println("数组元素值依次为:"+i);}
}
输出结果:
数组元素依次为:75
数组元素依次为:67
数组元素依次为:90
数组元素依次为:100
数组元素依次为:0
-使用数组计算成绩
-使用数组计算