一堆数组

数据结构概述

        数据结构的出现是为了在计算机中更加科学的管理数据, 选择合适的数据结构可以让我们在操作数据时性能更加优秀,操作更为方便。

常见的数据结构分为两类:

1.线性数据结构(线性表)

        1.数组

        2.链表

        3.栈

        4.队列

        .........

2.非线性数据结构(非线性表)

        1.树

        ....

        2.图

可以阅读:《大话数据结构 精编版 彩装》 《漫画算法2:小灰的算法进阶》

数据概述

例如:存储一个学生的成绩,使用double类型的变量即可搞定。但当需要存储更多的学生成绩 时,例如存储全班学生成绩,很显然再使用 double 类型的变量个个的来存储将会使程序变得来繁 琐,不方便我们进行使用。

double score = 90;
// 存储全班成绩
double score1 = 90;
double score2 = 80;
// ...
数组是线性数据结构中最为基础,最为典型的一 种顺序型结构。
它用 连续的内存空间 ,来存储 组具有 相同类型 的数据。
与变量相比,变量是一 种单一 的数据存储方式,而数组是用于存储 连串的 组数据

 

数据组成

变量:

变量数据类型 变量名 = 变量值:

数组 :

// 声明数组:在内存空间中会开辟一串连续的空间
数组元素数据类型[] 数组名= new 数组元素数据类型[数组容量];
// 给数组赋值:将数组元素存储到指定的数组空间中
数组名[下标]= 元素值;
// 从数组取出元素
数组名[下标] 
1.数组元素数据类型
2.数组元素
3.数组名
4.数组容量
5.数组下标(index)

数组的定义

例如:存储5名学生成绩

// 声明数组:在内存空间中会开辟一串连续的空间
double[] scores = new double[5];
// 给数组赋值:将数组元素存储到指定的数组空间中
scores[0]= 80;
scores[2]= 90;
// 取出数组的值
scores[2]

注意:数组的容量,一经定义,不可改变。

在声明数组时,直接进行赋值。

数组元素数据类型[] 数组名= {元素值1, 元素值2, ....};

先了解:

数组元素数据类型[] 数组名= new 数组元素数据类型[]{元素值1, 元素值2, ....};

数组动态赋值

利用数组赋值的规律,采用循环结构进行的键盘录入。
【循环分析】
1.有规律,使用循环,有固定次数for循环
2.  循环条件:i < 数组容量
     循环变量:int i = 0;
     循环出口:i++;
3.循环操作:
        1.键盘录入数据
        2. 将数据赋值给数组的指定下标
4.套用语法

数组默认值

整数型数组(byte、short、int、long):默认值为0
浮点型数组(float、double):默认值为0.0
布尔型数组(boolean):默认值为false
字符型数组(char):默认值为一 个空格(\u0000)
字符串型数组(String):默认值为 null

数组的遍历

数据的操作,逃脱不了几个本质:CRUD(增删改查)。
        增加数据:数组名[下标] = 元素值;
        修改数据:数组名[下标] = 新元素值;
        删除数据:数组名[下标] = 数组对应元素类型的默认值;
        查询数据:
                查询单个的:数组名[下标]
                查询所有的:
                        利用循环将数组中的每一 个空间的元素取出来(遍历)
1.通过循环,变量所有的数组下标,根据下标取出每一个元素(前期用的多)
double[] scores = {90, 80, 70, 60, 50};

// 遍历

// scores[0]
// scores[1]
// scores[2]
// scores[3]
// scores[4]
// for (int i = 0; i < 5; i++){

}

for (int i = 0; i < scores.length; i++){
    System.out.println(scores[i]);
}

2.通过增强for循环来遍历出数组的每一个元素(后期用的多)

for (数组元素数据类型 临时变量名 : 数组名){
    临时变量名
}

数组使用

 

 

// 声明一个长度为5的数组,用来存储本月消费记录
double[] records = new double[5];

// 动态赋值
Scanner input = new Scanner(System.in);
System.out.println("请输入会员本月的消费记录:");
for (int i = 0; i < records.length; i++) {
    System.out.print("请输入第" + (i+1) + "笔购物金额:");
    records[i] = input.nextDouble();
}

System.out.println();

// 声明变量,存储消费总金额
double sum = 0;
System.out.println("序号\t\t金额(元)");
for (int i = 0; i < records.length; i++) {
    System.out.println((i+1) + "\t\t" + records[i]);
    sum += records[i];
}
System.out.println("总金额\t\t" + sum);

作者:查老师
链接:https://juejin.cn/post/6917759326450876429
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值