本章内容
一维数组
数组的定义和创建
数组可以看成是多个相同类型数据的组合,实现对这些数据的统一管理
讯享网数组中的每一个数据 — 数组的一个元素(element)
数组中的元素可以是任何数据类型,包括基本数据类型和引用类型
数组中元素的个数,称为数组的长度(length)
JAVA语言中声明数组时不能指定其长度
讯享网
数组的其他基本概念
数组的定义和创建
数组类型 数组名 [ ]
或
数组类型[ ] 数组名
示例
数组的定义和创建
数组名 = new 数据元素类型[ 元素个数 ]
示例
数组的内存模型
数组是存储多个相同类型变量的对象。数组的所有元素保存在堆内存中。
创建一个数组就是在堆中创建一个数组对象。
数组创建后立即拥有默认值。
索引从0开始。
连续分配
数组的初始化
在创建数组的同时就为数组元素分配空间并赋值
声明数组:和使用变量要先声明一样,先声明数组的类型和名称
讯享网
构造数组:声明之后,还不知道能存放多少个数据
构造/创建数组使用了关键字new,它是内存分配操作符,所谓创建数组,就是在内java编程基础数组存中给数组分配空间。
初始化数组:使用new创建数组后,所有元素其实已经被初始化,元素都是默认值,这种初始化就叫做”动态初始化“。
还有一种初始化方式是不使用new,而是在声明数组的同时就完成创建和初始化工作,这叫做”静态初始化“。

数组元素的访问
Java中,数组元素的下标从0开始
元素的下标可以是整型常量或整型表达式
数组的属性
数组的长度(length)必须>=0;
length为只读。
利用length遍历数组
练习
数组的异常 示例
多维数组的创建
Java中没有真正的多维数组,只有数组的数组
锯齿数组
Java中多维数组不一定是规则矩阵形式
多维数组的创建
多维数组的创建
多维数组的初始化
示例 MulArray.java
多维数组的内存模型
☻ 练习
多维数组的遍历
利用循环语句 和 数组下标
☻ 练习 Array_traversal.java
数组的复制 和排序
复制source数组中从下标srcPos开始的length个元素到目标数组dest,并从目标数组的下标为destPos的位置开始储存
☻ 练习 Array_copy.java
复制数组{1,2,3,4,5}中从下标0开始的
5个元素到目标数组{6,7,8,9,10,11,12,13,14,15},
并从目标数组的下标为0的位置开始储存
对数组arr_name中,从下标为fromIndex到toIndex的元素(不包括toIndex)进行升序排序
示例:ArraySort_sample.java
冒泡排序法(Bubble Sort)
冒泡排序法(Bubble Sort)
假设输入6个数为:9,8,5,4,2,0。
经过第一趟(共5次比较与交换)后,最大的数9已“沉底” 。
然后进行对余下的前面5个数第二趟比较,如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次两两比较,在第j趟比较中要进行n-j次两两比较。
本章重点总结
一维数组
多维数组
课后作业
- 编写一个简单程序,要求数组长度为5,分别赋值10,20,30,40,50,在控制台输出该数组的值。(知识点:数组定义和创建、一维数组初始化)[必做题]
- 将一个字符数组的值(neusofteducation)拷贝到另一个字符数组中。(知识点:数组复制) [必做题]
- 给定一个有9个整数(1,6,2,3,9,4,5,7,8)的数组,先排序,然后输出排序后的数组的值。(知识点:Arrays.sort排序、冒泡排序) [必做题]
- 有2个多维数组分别是 2 3 4 和 1 5 2 8 4 6 8 5 9 10 -3 2 7 -5 -18
按照如下方式进行运算。生成一个2行4列的数组。此数组的第1行1列是21+35+42第1行2列是25+39+47 第2行1列是41+65+8*2 依次类推。(知识点:多维数组定义和创建、数组遍历、数组元素访问) [选作题] - 输出一个double型二维数组(长度分别为5、4,值自己设定)的值。(知识点:数组定义和创建、多维数组初始化、数组遍历) [必做题]
- 在一个有8个整数(18,25,7,36,13,2,89,63)的数组中找出其中最大的数及其下标。(知识点:数组遍历、数组元素访问) [必做题]
- 将一个数组中的元素逆序存放(知识点:数组遍历、数组元素访问) [选作题]
- 将一个数组中的重复元素保留一个其他的清零。(知识点:数组遍历、数组元素访问) [选作题]
- 给定一维数组{ -10,2,3,246,-100,0,5} ,计算出数组中的平均值、最大值、最小值。(知识点:数组遍历、数组元素访问) [选作题]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/4789.html