java数组
数组基本用法
1.1 什么是数组
定义:数组可以认为是相同类型数据的集合
1.2 数组常见的定义格式(一维数组)
定义一 :int[] array ={1,2,3,4,5};
定义二: int [] array2 = new int[] {1,2,3,4,5} //注意:int后面中括号内不能有值,否则java中编译都无法通过
定义三: int {} array3 = new int[120] //中括号内代表array3数组内有120个数据,但是没有赋值,所以其默认为0;
public class Test{
public static void main(String[] args){
int[] arr = {1 ,2, 3, 4, 5};
System.out.println(arr.length);//数组长度
System.out.println(arr[0]);//数组的第一个元素
System.out.println(arr[1]);//数组的第二个元素
System.out.println(arr[2]);//数组的第三个元素
System.out.println(arr[3]);//数组的第四个元素
System.out.println(arr[4]);//数组的第五个元素
}
}
注意事项:
(1)arr.length能够获取到数组的长度. . 这个操作为成员访问操作符. 后面在面向对象中会经常用到.
(2)使用 [ ] 按下标取数组元素. 需要注意, 下标从 0 开始计数
(3)使用 [ ] 操作既能读取数据, 也能修改数据.
(4)下标访问操作不能超出有效范围 [0, length - 1] , 如果超出有效范围, 会出现下标越界异常
(5) arr.lenath可以反馈数组长度
遍历数组
所谓 “遍历” 是指将数组中的所有元素都访问一遍, 不重不漏. 通常需要搭配循环语句.由于数组是一种顺序的结构,并且数组的长度都是固定的,那么可以使用循环的方式输出,很明显需要知道for循环,而且在java里面为了方便数组的输出提供了一个“数组名称.length”的属性,可以取得数组长度。
(1)使用for()循环遍历数组
public class Test{
public static void main(String[] args){
int[] arr = {1 ,2, 3, 4, 5};
for(int i=0,i<arr.length,i++){
System.out.println(arr[i]);
}
}
(2)使用for each()遍历数组
格式如下:
for(数组里面的元素类型:数组名){
}
数组名就是容器,冒号前面的就是容器里的东西。
public class Test{
public static void main(String[] args){
int[] arr = {1 ,2, 3, 4, 5};
for(int i :arr){
System.out.println(i);
}
}
注意事项:形参的改变不会影响实参的值
二维数组
在之前数组里面只有一个[ ],所以此类数组就是一个普通的数组,只有一行的数组称之为一维数组。如果要想描述更多的数据可以使用二维数组,后面有两个中括号[ ] [ ]。
定义语法:
动态初始化: 数据类型 数组名称 [ ] [ ] = new 数据类型[ 行的个数] [ 列的个数]
静态初始化: 数据类型 数据名称 [ ] [ ] = new 数据类型 [ ] [ ] {{值,值,值},{值,值,值}.......}
通过定义的结构发现,所谓的二维数组实际上就是将一个一维数据变为了一个大的数组,并且为每一个一维数组设置了一个行号而已。
public class Test{
public static void main(String[] args){
int arr[][] = {{1 ,2, 3, 4, 5},{6, 7, 8, 9, 10}};
System.out.println(arr[0][0]);//数组的第一个元素1
System.out.println(arr[1][1]);//数组的第二行第二个元素7
System.out.println(arr[0][1]);//数组的第二个元素2
}
}
练习题:请输入10位同学的java成绩,
求平均成绩,最高成绩、最低成绩
import java.util.Scanner;
public class day7Test1 {
public static void main(String[] args) {
double[] scores= new double[10];
double sum=0,max=0,min=0;
Scanner in = new Scanner(System.in);
for (int i = 0; i < scores.length; i++) {
System.out.print("请输入第"+(i+1)+"个同学的成绩");
scores[i]=in.nextDouble();
sum +=scores[i];
if(i==0) {
max=scores[i];
min=scores[i];
}else
if (max<scores[i]) {
max=scores[i];
}
if(min>scores[i]) {
min=scores[i];
}
}
in.close();
System.out.println("平均成绩为"+(sum/scores.length));
System.out.println("最高成绩:"+max);
System.out.println("最低成绩:"+min);
}
}