如何快速学习:[1]Swift编程语言,Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Ojective-C*共同运行于MacOS和iOS平台,用于搭建基于苹果平台的应用程......
2023-03-17 354 编程语言
Java数据结构一维数组的应用
声明一维数组
在java语言中,声明一维数组的语法为:
类型说明符 数组名[];
其中类型说明符可以是Java语言中任何有效的数据类型,如int、float、char等。数组名是引用数组的名称,数组名的命名需符合变量命名规则。
例如:
int a[];
//定义了一个数组,名称为a,数组中的元素类型是int
float score[];
//定义了一个数组,名称为float,数组中的元素类型是float
一维数组的初始化
声明了一个数组,只是得到了一个存放数组的地址变量,并没有为数组元素分配内存空间,因而不能直接使用,必须经过初始化,为数组分配内存空间才能使用。
数组的初始化有两种方法,一种是静态初始化,另一种是动态初始化。
① 静态初始化
在声明数组时,直接给数组的每个元素赋上一个初始值。静态初始化一般在数组元素比较少时使用。
静态初始化的语法为:
数组类型 数组名[]={值1, 值2,……, 值2};
例如:
int a[] = {26,67,89,106,210};
float score[] = {87.5,67.2,96.8,92.6,75.9};
char chArray[] = {‘a’,’m’,’o’,’p’,’q’};
对于数组a,可以看出数组中有5个元素,分别是a[0]、a[1]、a[2]、a[3]、a[4]、a[5],即数组下标从0开始,这5个元素的数值依次为a[0]=26、a[1]=67、a[2]=89、a[3]=106、a[4]=210。其在内存中结构如下图所示:
错误的初始化:
int a[];
a[] = {26,67,89,106,210};
数组的初始化只能在声明中完成,不能声明完成后,再进行初始化。
② 动态初始化
有时,数组并不需要在声明时就赋初值,而是在使用时才进行赋值。另外,有些数组比较大,元素非常多,用静态初始化不方便,这样就需要使用动态初始化。数组的动态初始化使用new操作符。
动态初始化的方式有两种。
● 先声明数组,再用new分配内存
例如:
int a[];
a = new int[4];
Java的new运算操作符,用来在内存中申请存储空间,并将申请到存储空间的首地址赋值给被申请的变量。语句a = new int[4]为数组a分配了4个元素,这4个元素分别是a[0]、a[1]、a[2]、a[3],它们的值都为0。
● 在定义数组的同时用new分配内存
例如:
int a[] = new int[4];
int size = 100;
//也可以用变量给出数组的大小
float score[] = new float[size];
一维数组元素的访问
使用数组的最基本操作是数组元素的访问,对数组的使用最终都通过对元素的使用而实现。数组的元素通过数组下标进行访问。前面已经讲过,在Java语言中,数组下标是从0开始的,所以包含n个元素的数组下标的范围是0到n-1。例如:前面定义的数组a,其下标范围为0到4。要访问a数组的元素,可通过a[0]、a[1]、a[2]、a[3]、a[4]访问a数组的各个元素,此时,方括号中的数字是数组的下标,表示访问数组的第几个元素。
在Java语言中,数组也是一种对象,对象将在后面的章节讲述。数组被初始化后就确定了它的长度,对于每个已经分配了存储空间的数组,Java用一个数据成员length来存储这个数组的长度值。
例如:
int a[] = {26,67,89,106,210};
int i;
for( i = 0; i a.length; i )
{
System.out.printf("第 %d 数组元素的值为: %d;\n",a[i]);
}
在遍历数组的for循环中,循环条件为a.length,a.length就是数组长度的值,在a数组中,a.length的值为5。
下面通过一个完整的示例,演示如何声明一个数组,并通过nextFloat方法为数组动态赋值。
示例1:5件商品以内的价格小计
在D盘Java目录下,新建“ArraySample1.java”文件。用记事本打开“ArraySample1.java”文件,输入以下代码:
代码结构分析
程序功能主要是演示数组声明、初始化、动态赋值、输出数组元素的使用方法。
程序声明包含5个元素的数组price,用来存储用户输入的5件商品价格,并通过循环获取用户输入的商品价格,同时计算商品总价,商品总价存储到声明的变量total中。然后,循环输出每件商品的价格,最后输出商品总价。
编译“ArraySample1.java”文件,在命令行窗口输入“javac ArraySample1.java”并执行命令,编译通过后,在命令行窗口输入“java ArraySample1”运行Java程序,命令行窗口显示如下信息:
可以把一维数组看作超市商品货柜中一列存放同类商品的格子,商家如果要把商品放到格子中,需要提前向超市申请格子的使用权,超市同意使用后,商家才能把商品放到格子中,然后根据格子的编号存取商品。再回到编程中来,程序要使用一维数组,必须要向计算机操作系统申请数组的使用权以及使用空间大小,操作系统分配给数组存储空间后,程序方可使用。因此,数组在使用中必须先声明并初始化后才能使用,声明和初始化数组的目的是为其留出所需要的存储空间,用来存储数组元素。
思考练习:
编写一个程序,用于记录50名同学的姓名和电话号码。
程序要求:
(1)循环完成50名同学的姓名和电话号码的录入,输入“stop”可提前结束录入。
(2)录入完成后,依次输出同学的姓名和电话号码,输出格式如下:
XXX同学 联系电话XXXXXXXXXXX;
提示:姓名和电话号码属于两列数据,类型是字符串。可以考虑声明两个字符串类型长度为50的一维数组,应用for循环依次录入50名同学的姓名和电话,分别存储到声明的数组中,for循环中要判断用户是否输入了“stop”,如果用户输入了“stop”,可以利用break语句跳出循环。不管是循环结束还是跳出循环,最后都要遍历声明的两个数组,按照输出格式输出同学的姓名和电话。
需要考虑用break语句跳出循环时,记录实际输入的同学数,后面遍历输出时要用到,防止输出没有被赋值的数组元素。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章
如何快速学习:[1]Swift编程语言,Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Ojective-C*共同运行于MacOS和iOS平台,用于搭建基于苹果平台的应用程......
2023-03-17 354 编程语言
web图表开发工具FineReport:[11]连续分组,数据库表数据是按照时间先后录入的,查询的时候希望按照时间先后,某个字段连续相同的话就合并起来显示,这样的报表可以通过相邻连续分组来实现。......
2023-03-17 579 编程语言