第七章 数组

什么是数组
数组是一个变量存储相同数据类型的一组数据
声明一个变量就是在内存空间划出一块合适的空间
声明一个数组就是在内存空间划出一串连续的空间

数组基本要素
标识符:数组的名称,用于区分不同的数组
数组元素:向数组中存放数据
元素下标:对数组元素进行编号,从0开始,数组中的每个元素都可以通过下标来访问
元素类型:数组元素的数据类型
数组长度固定不变,避免数组越界

如何使用数组
使用数组四步走
1.声明数组 int【】a;
2.分配空间 a=new int【5】;
3.赋值 a【0】=8;
4.处理数据 a【0】=a【0】*10;

声明数组
1.声明数组:告诉计算机数据类型是什么
int【】 score1; //Java成绩
int score2【】; //c#成绩
String【】name; //学生姓名

数据类型 数组名【】;》》》声明数组时不规定数组长度
数据类型【】 数组名【】;

分配空间
分配空间:告诉计算机分配几个连续的空间
score = new int【30】;
avgAge = new int【6】;
name = new String【30】;
语法:声明数组并分配空间
数据类型【】数组名 = new 数据类型【大小】;

数组赋值
赋值:向分配的格子里放数据
score【0】=89;
score【1】=79;
score【2】=76;

方法一:边声明边赋值
int【】score = {89;79,76};
int【】score = new int【】{89,79,76};》》》不能指定数组长度

方法二:动态的从键盘录入信息并赋值
Scanner input = new Scanner(System.in);
for(int i =0;i<30;i++){
score【i】=input.nextlnt();
}

对数据进行处理:计算5位学生的平均分
int [] score = {60,80,90,70,85};
double avg;
avg = (score[0]+score[1]+score[2]+score[3]+score[4])/5;

int [] score = {60,80,90,70,85};
int sum =0;
double avg;
for(int i = 0; i < score.length;i++){>数组的length属性
sum = sum score[i];>访问成员
}
avg = sum score.length;

数组的排序
使用Java.util.Arrays类
java.util包提供了许多工具类
Arrays类提供操作数组的方法》如排序、查询
Arrays类的sort()方法:对数组进行升序排序
Arrays.sort(数组名);

boolean equals(array1,array2)
比较array1和array2两个数组是否相等
sort(array)
对数组array的元素进行升序排列
String toString(array)
将一个数组array转换成一个字符串
void fill(array,val)
把数组array所有元素都赋值为val
copyOf(array,length)
把数组array复制成一个长度为length的新数组,返回类型与复制的数组一致
int binarySearch(array,val)
查询元素值val在数组array中的下标(要求数组中元素已经按升序排序)

//计算成绩最大
max = scores[0];
for(int i = 0;i<scores.length;i++){
if(scores[i]>max){
max = scores[i];
}
}
System.out.println(“考试成绩最高分为:”+ max);

二维数组
语法:
<数据类型>[][]数组名;或者<数据类型>[数组名][];
int [][] scores; //定义二位数组
scores = new int [5][50]; //分配内存空间
或者
int [][] scores = new int [5][50];

二维数组实际上是一个一维数组,它的每个元素又是一个一维数组

二维数组的定义
定义并赋值
写法一:
int [][] scores = new int [][] {{90,85,92,78,56},{76,63,80},{84}};
写法二:
int scores [][] = {{90,85,92,78,56},{76,63,80},{84}};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值