数据结构概述
数据结构的出现是为了在计算机中更加科学的管理数据, 选择合适的数据结构可以让我们在操作数据时性能更加优秀,操作更为方便。
常见的数据结构分为两类:
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
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。