在前面的文章中我们介绍了数组的基础知识,包括数组的声明、初始化、遍历、复制、扩容以及排序。那么我们如何在实际操作中把这些知识点有机的结合起来应用呢?今天通过一个具体的程序,让我们重新复习一下数组的声明、初始化、遍历、复制、扩容以及排序的知识点,以及在编程语言中的实际应用。
问题
创建程序,实现查询数组中最大值的功能,并将最大的元素放到最后一位,使数组长度增加1,需求为:创建一个长度为10的数组,数组内放置10个从0到99之间(包含0包含99)的随机整数作为数组内容,要求查询出数组中的最大值,并将数组的长度扩容为11,然后将查询到的数组最大值作为数组的最后一个元素,并打印显示在界面上。效果图如下
方案
首先,此案例中,需要先创建一个长度为10的整形数组,然后用for循环来产生10个0到99之间的随机整数,并放入数组,然后查询数组中的最大值。
其次,我们使用Arrays类的copyOf()方法实现数组的拷贝及扩容:原数组arr的长度为10,那么使用上述方法后将产生一个长度为11的新数组arr,且新数组中的前10个数值和原数组中的10个值相同,然后将查询到的最大值放入新数组的最后一个位置上。
步骤
步骤一:定义类及main方法
首先定义一个名为MaxOfArray的类,并在类中添加Java应用程序的主方法main。
步骤二:创建数组
在main方法中创建一个长度为10的数组
步骤三:数组的复制
使用for语句构建一个10次循环,在每次循环中,随机产生一个0到99之间的整数,并存入数组。需要用到Random类的nextInt()方法产生随机数。(需要导入java.util包下的Random类)
步骤四:打印数组内容
数组赋值后,为方便用户查看数组中的数据内容,需要将数组中的数据打印在界面上,因此需要使用Arrays类的toString方法来得到数组的内容。(需要导入java.util包下的Arrays类)
步骤五:查询最大值
为找到数组中的最大值,依然需要使用循环来遍历数组,先定义一个变量max用于表示最大值,并赋初始值为数组中的第一个元素;然后依次把数组中的元素与变量max进行数值比较,如果数组中的某个元素值大于max,则将该元素的数值存入变量max。
步骤六:创建新数组
使用Arrays.copyOf()方法创建一个长度为11的新数组
步骤七:存储最大值并打印数组内容
将查询到的数组最大值放入新数组的最后一个位置,并打印数组内容。本案例完整代码
这样我们通过一个程序几乎实现了一个数组基础知识所有知识点的应用,是一个综合性比较高的数组相关的程序操作,并且应用到了我们逻辑结构中的循环结构。所以这段程序代码还是非常值得初学者学习的。后续我们还会单独介绍数组排序中常用的其他方法的应用,比如冒泡排序等。
知识无限,小编在文章编辑过程中难免出现不尽人意的地方,欢迎大家批评指正,小编也将不断积累完善自己,让我们共同进步。
领取专属 10元无门槛券
私享最新 技术干货