前言
简单总结老师上课讲的有关数组的内容
一、为什么需要数组?
数组:类型相同的一组数据
eg:
保存一个人的成绩 int score=100;
若保存一个班所有人的成绩,这时就需要用到数组;
二、数组的定义
1.只声明,未初始化
int[] a;
int a[];
2.数组的初始化
(1)初始化的时候指定数组的长度,内容由系统确定
内容根据数据类型来确定:
整数byte short int long 默认是0
浮点数float double 默认是0.0
字符char 默认是空白字符
布尔boolean 默认是false
引用类型 默认是null
int[] a=new int[5];
(2)初始化的时候指定数组中的内容,长度由系统确定
长度根据内容的个数来确定:
int[] a=new int[]{11,22,33,44,55,66};
//可简化写法
int []a={11,22,33,44,55,66};
3.数组的使用
数组的长度:
数组中最多存放的数据的个数
//获得数组的长度
int len=a.length;
操作数组中的数据:
数组中每一个存储位置都有一个编号
这个编号是从0开始的连续的整数
我们将这个编号叫做数组的索引,或者下标
通过下标可以操作数组中的每一个存储位置
a[0] 表示数组的第一个存储位置
a[1] 表示数组的第二个存储位置
a[2] 表示数组的第三个存储位置
…
最大的下标=数组的长度-1
4.数组的特点
数组的每一个存储位置在内存中是连续的地址
通过索引可以快速的定位到每一个存储位置
数组非常方便用来做数据的查询
5.解决问题
1.给定 一个数组,int[] a = {1,3,5,7,9};将其倒序成一个新的数组.
int[] b=new int[a.length];
for(int i=0;i<a.length;i++){
b[b.length-1-i]=a[i];
}
2.给定两个数组int[] a = {1,3,5,7,9}; int[] b = {2,4,6,8};
将其合并成一个新的数组.
int[] c = new int[a.length+b.length];
for(int i=0;i<a.length;i++){
c[i] = a[i];
}
for(int i=0;i<b.length;i++){
c[a.length+i] = b[i];
}
3.给定一个数组 int[] a = {1,0,2,5,0,4,3,0,0,6,0,7,8,0,9};
去掉其中为0的元素,将不为0的元素组成一个新的数组.
//先统计不为0的个数
int count=0;
for(int i=0;i<a.length;i++){
if(a[i]!=0)
count++;
}
int[] b = new int[count];
int j=0;
for(int i=0;i<a.length;i++){
if(a[i]!=0) {
b[j++] = a[i];
}
}
4.定义一个数组,来存储斐波拉契数列的前20项
1,1,2,3,5,8,13,21,34…
int[] d=new int[20];
d[0]=1;
d[1]=1;
for(int i=2;i<d.length;i++) {
d[i]=d[i-1]+d[i-2];
}