Java数组

创建数组 (1)

数组是相同类型数据的有序集合.

– 相同类型的若干个数据,按照一定先后次序排列组合而成。

– 其中,每一个数据称作一个数组元素 – 每个数组元素可以通过一个下标来访问它们.

数组特点:

– 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。

– 其元素必须是相同类型,不允许出现混合类型。

– 数组中的元素可以是任何数据类型,包括基本类型和引用类型。

数组属引用类型

– length, elements of the array

数组概述 

• 数组是一个变量,存储相同数据类型的一组数据

 

声明一个变量就是在内存空间划出一块合适的空间

声明一个数组就是在内存空间划出一串连续的空间

数组概述

• 数组只有一个名称,即标识符

• 元素下标标明了元素在数组中的位置,从0开始

• 数组中的每个元素都可以通过下标来访问

• 数组长度固定不变,避免数组越界

如何使用数组

使用数组四步走

1、声明数组: int[ ] a;

▪ 声明数组: 告诉计算机数据类型是什么

int[ ] score1;            //Java成绩

int score2[ ];            //C#成绩

String[ ] name;        //学生姓名

数据类型     数组名[ ] ;

数据类型[ ]      数组名 ;

2、分配空间 :a = new int[5];

▪ 分配空间: 告诉计算机分配几个连续的空间

score = new int[30];

avgAge = new int[6];

name = new String[30];

 ▪声明数组并分配空间

数据类型[ ] 数组名 = new 数据类型[大小];

3、赋值: a [0] = 8;

▪ 赋值:向分配的格子里放数据

score[0] = 89;

score[1] = 79;         

score[2] = 76;

 //太麻烦了

方法1: 边声明边赋值

int[ ] score = {89, 79, 76};

int[ ] score = new int[ ]{89, 79, 76};

方法2动态地从键盘录入信息并赋值

Scanner input = new Scanner(System.in);

for(int i = 0; i < 30; i ++){

score[i] = input.nextInt();

}

4、处理数据: a [0] = a[0] * 10; 

对数据进行处理:计算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++){

sum = sum + score[i];

avg = sum / score.length 

使用数组求平均分:

public static void main(String[ ] args) {

int[] scores = new int[5];     //成绩数组

int sum = 0;                        //成绩总和

Scanner input = new Scanner(System.in);

System.out.println("请输入5位学员的成绩:");

for(int i = 0 ; i < scores.length ; i++;){

scores[i] = input.nextInt();

sum = sum + scores[i] ;            //成绩累加

}

System.out.println("平均分是 : " + (double)sum / scores.length);

}

常见错误1

public class ErrorDemo1 {

public static void main(String[ ] args){

int[ ] score = new int[ ] ;      //编译出错,没有写明数 组的大小

score[0] = 89;

score[1] = 63;

System.out.println(score[0]);

}

}

常见错误2

public class ErrorDemo2 {

public static void main(String[ ] args) {

int[ ] scores = new int[2];

scores[0] = 90;

scores[1] = 85;

scores[ 2 ] = 65;         // 编译出错,数组 越界

System.out.println(scores[2]);

常见错误3

public static void main(String[ ] args){

int[ ] score = new int[5];

score = {60,80,90,70,85};

int[ ] score2; }                                    //编译出错,创建数组并 赋值的方式必须在一条 语句中完成

score2 = {60,80,90,70,85};

}

一维数组的声明 

一维数组的声明方式有两种:

type[]    arr_name;

type     arr_name[];

▪ 例如:

int[] intArrays;

int intArrays[];

double[] doubleArrays;

Person[] pArrays;

String[] strArrays;

二维数组

二维数组举例:

int [][] a = {{1,2},{3,4,0,9},{5,6,7}};

Java中多维数组不必须是规则矩阵形式

 二维数组可以看成以数组为元素的数组。

例如: int [][] a= {{1,2},{3,4,5,6},{7,8,9}};

Java中多维数组的声明 和初始化应按从高维到 低维的顺序进行,

例如:

总结 

▪ 一维数组入门

– 数组的特点:长度固定,连续空间,存储同一种类型数据

– 数组内存分配图

– for-each循环:简单、主要用于遍历操作

▪ 一维数组的应用

– 数组优缺点

▪ 优点:按照索引查询效率高

▪ 缺点:添加删除元素效率低;按照内容查询效率低(无序)

– 冒泡排序:基本的排序算法,理解排序规则,实现并完善排序代码

– 数组类型做形参

▪ 二维数组:

– 实质是每个元素是一维数组的一维数组;二维数组内存分配图 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值