数据可以存放在变量里,每一个变量有一个名字,有一个类型,还有它的生存空间。如果我们需要保存一些相同类型、相似含义、相同生存空间的数据,我们可以用数组来保存这些数据,而不是用很多个独立的变量。
数组是长度固定的数据结构,用来存放指定的类型的数据。一个数组里可以有很多个数据,所有的数据的类型都是相同的。
①创建数组
- 数组是一种容器(放东西的地方)
- 特点是:其中所有的元素具有相同的数据类型;一旦创建,不能改变大小
- 数组中的每个数据叫做元素
写一个程序计算用户输入的数字的平均数,并输出所有大于平均数的数。 必须先记录每一个输入的数字,计算平均数之后,再检查记录下来的每一个数字,与平均数比较,决定是否输出。 如何记录很多数? int[]numbers=new int[] 写一个程序计算用户输入的数字的平均数,并输出所有大于平均数的数。 public static void main(String[] args) { Scanner in=new Scanner(System.in); int x; double sum=0; int cnt=0; int[]numbers = new int[100]; x= in.nextInt(); while(x!=-1) { numbers[cnt]=x; sum = x; cnt ; x= in.nextInt(); } if(cnt>0) { double average = sum/cnt; for(int i=0;i<cnt;i ) { if(numbers[i]>average) { System.out.println(numbers[i]); } } } } }
这里面是有安全隐患的:数组容量为100,超出范围则下标越界报错 ②数组的元素
- 每个元素都是一种类型的变量
- 索引或者下标是从0开始的
- 有效下标:最小的下标是0,最大的下标是数组的元素个数-1;可是编译器不会检查看你是不是有效下标;但是如果运行的时候出现无效的下标,可能会导致程序终止
如果在刚刚那个程序上写入: numbers[101]= 20;编译器不会报错,但运行不了
③数组变量
- <类型>【】<名字>=new<类型>【元素个数】;
- int【】grades=new int【100】
写一个程序,输入数量不确定的【0,9】范围内的整数,统计每一种数字出现的次数,输入-1表示结束 Scanner in=new Scanner(System.in); int x; x =in.nextInt(); int[]numbers = new int[10]; while(x!=-1) { if(x>=0 && x<=9) { } numbers[x] ; { x= in.nextInt(); } for(int i=0;i<numbers.length;i ) { System.out.println(i ":" numbers[i]); } } } }
length:每个数组有一个内部成员length,会告诉你它的元素的数量