int[] studentScore; //声明数组:数据类型 [] 数组名;studentScore=new int[10]; //分配空间:数组名= new 数据类型[长度];studentScore[0]=89; //赋值:数组名[数组下标]=数据值;

办法二: 边声明边分配空间,再赋值

int[] studentScore=new int[10]; //声明并分配空间: 数据类型 [] 数组名=new 数据类型[长度];studentScore[0]=89; //赋值: 数组名[数组下标]=数据值;

办法三:边声明边赋值:

int[] studentScore={89,90,87,98}; //声明并赋值:数据类型[] 数组名={value1,value2,value3...};

php数组分组avgJAVA笔记五数组 CSS

//声明并赋值:数据类型[] 数组名=new 数据类型[]{value1,value2,value3...};int[] studentScore=new int[]{89,90,87,98};

把稳:

该办法在声明时直接赋值,不能指定长度,即不能写成int[] studentScore =new int[4]{89,90,87,98};4.数组详细利用案例

案例:

1、打算全班学员的均匀分?

package cn.hz.demo2;import java.util.Scanner;/ 数组详细利用 需求: 打算5位同学的均匀分 需求剖析: 先声明,再赋值 1.5位同学分数--double[] 2.5位同学分数录入--for(){} 2.求总分-求和--for(){} @author hz /public class Demo1 { public static void main(String[] args) { Scanner input=new Scanner(System.in); //定义变量和数组 double sum=0.0,avg=0.0; double[] studentScore=new double[5]; //赋值 for (int i = 0; i <5; i++) { System.out.println("请输入第"+(i+1)+"位同学的分数"); studentScore[i]=input.nextDouble(); } //打算 for (int i = 0; i < 5; i++) { sum=sum+studentScore[i]; //sum+=studentScore[i]; } //求均匀分 avg=sum/5; System.out.println("5位同学的均匀分是"+avg); }}

2、在一系列数组插入一个数

package cn.hz.demo4;import java.util.Arrays;import java.util.Scanner;/ 需求: 有一组学员的成绩{99,85,82,63, 60},将它们按升序排列。
要增加一个学员的成绩,将它插入成绩序列,并保持升序 90,89,78 需求剖析: 0.定义数组的时候个数该当6,末了0; 1.升序: Arrays.sort; 60,63,82,85,99,0 2.获取插入数据在数组中对应的下标 77 if(num>arr[i]){} i----num 3.将获取到角标往后的数字全部后移 99-0,85-99,82-85 4.将须要插入的数字通过角标放入到数组中 如果将数组内容进行排序:自己编写排序方法 @author hz /public class Demo2 { public static void main(String[] args) { Scanner input =new Scanner(System.in); int[] scores=new int[6]; scores[0]=99; scores[1]=85; scores[2]=82; scores[3]=63; scores[4]=60; //定义变量用于接管下标 int index=scores.length-1; System.out.println("请输入须要查找的数字"); int num=input.nextInt(); //获取位置 for (int i = 0; i < scores.length; i++) { //当前数组内容为降序,找到须要查找数据第一次比较大 if(num>scores[i]){ index=i; //获取到角标往后直接结束循环 break; } } //将获取到的角标的后面所有内容全部后移 for(int j=scores.length-1;j>index;j--){ //从末了一个数字开始,将前面一个的值给后面 scores[j]=scores[j-1]; } //将新数字插入到数组中 scores[index]=num; //排序 Arrays.sort(scores); for(int i=0;i<scores.length;i++){ System.out.print(scores[i]+"\t"); } }}
5.数组常见缺点剖析

常见缺点1:

常见缺点2:

常见缺点3:

小结:数组是(相同类型数据)的(有序)(凑集)数组会在内存中开辟一块连续的空间,每个空间相称于之前的一个变量,称为数组的元素element元素的表示 数组名[下标或者索引]:scores[7] scores[0] scores[9]数组索引从0开始每个数组元素有默认值 double为 0.0; boolean为 false; int为 0;数组元素有序的,不是大小顺序,是索引 的顺序数组中可以存储基本数据类型,可以存储引用数据类型;但是对付一个数组而言,数组的类型是固定的,只能是一个数组的长度是固定的,一经定义,不能再发生变革(数组的扩容

数组是(相同类型数据)的(有序)(凑集)

二.二维数组

有些场合须要多个数组同时进行定义内容,是否可以将数组放入数组进行数据的存储?

将一维数组放入另一个数组,该数组为二维数组

1.二维数组定义声明:

int[][] arr1; //数据类型 [] [] 数组名;

int arr1 [][]; //数据类型 数组名 [] [] ;2.二位数组分配空间

//数据类型[] [] 数组名 =new 数据类型[ 表示有多少个一维数组,必填] [表示一维数组的个数,可填]int[][] arr1=new int[5][]; //数组名[下标]=new 数据类型[len]; 指定一维数组长度arr1[0]=new int[9]; 3.二维数组赋值:

//数据类型[] [] 数组名 =new 数据类型[ 表示有多少个一维数组,必填] [表示一维数组的个数,可填]int [] [] arr1=new int[5] [6]; //表示给二维数组中的第一个一维数组中的第一个值赋值10arr1[0] [0] =10:

//数据类型[] [] 数组名={{...}{...}...} ,,定义二维数组的同时直接赋值int[] [] arr1={{78,89,23,56},{78,89,90},{10}} 4.内存构造:

5.二维数组详细利用:杨慧三角

package cn.hz.demo2;/ 杨辉三角 @author hz 需求剖析: 第n行有n个数字. 每一行的开始和结尾数字都为1. 用二维数组表示便是a[i][0]=1; a[i][j]=1(当i==j时); n+1行的第i个数字即是第n行的i-1个数字加上第n行的i个数字。
用二维数组表示便是 a[i+1][j]=a[i][j-1]+a[i][j]; /public class Demo1{public static void main(String[] args) {int[][]a=new int[10][];//初始化二维数组 for (int i=0;i<a.length ;i++ ){ //二维数组中的一位数组长度空间确定a[i]=new int[i+1]; } //对付a[i]赋值先对两边赋值 for (int i=0;i<a.length ;i++ ){ a[i][i]=1; a[i][0]=1; } //再对内部进行赋值 for (int i=2;i<a.length ;i++ ){ for (int j=1;j<i ;j++ ){ a[i][j]=a[i-1][j-1]+a[i-1][j]; } } //遍历 for (int i=0;i<a.length ;i++ ){ for (int j=0;j<a[i].length ;j++ ) { System.out.print(a[i][j]+"\t"); } System.out.println(); }}}

结果如下:

总结: