5. JavaSE ——【适合小白的数组练习题】


📖开场白


亲爱的读者,大家好!我是一名正在学习编程的高校生。在这个博客里,我将和大家一起探讨编程技巧、分享实用工具,并交流学习心得。希望通过我的博客,你能学到有用的知识,提高自己的技能,成为一名优秀的程序员。如果你有任何疑问或建议,请随时在评论区留言,让我们一起成长进步!现在,让我们开始这场知识之旅吧!


在这里插入图片描述


🚀 本人主页:三亿奶奶心中的梦
❤️ 收入专栏:JavaSE


文章目录

  • 📖开场白
  • 📖前言
  • 📖1. 数组练习题
    • 📑1.1 数组拷贝
    • 📑1.2 求数组中元素的平均值
    • 📑1.3 查找数组中指定元素(顺序查找)
    • 📑1.4 查找数组中指定元素(二分查找)
    • 📑1.5 数组排序(冒泡排序)
    • 📑1.6 数组逆序
  • 📖 结束语


📖前言


本章节内容是分享适合小白练习的数组题,如有错误,还请指出,感谢大家的支持💕💕💕


📖1. 数组练习题


📑1.1 数组拷贝


题目要求:将整型数组1内容拷贝整型数组2

我们可以这样,代码如下:

public class DoWork {public static int[] copyOf(int[] array) {int[] array2 = new int[array.length];for (int i = 0; i < array.length; i++) {array2[i] = array[i];}return array2;}public static void main(String[] args) {int[] array = {1, 2, 3, 4, 5};for (int k: array) {System.out.print(k + " ");}System.out.println();int[] array2 = copyOf(array);for (int k: array2) {System.out.print(k + " ");}}

输出结果:

在这里插入图片描述

或者是使用Java自带的方法📲📲📲

使用自带的方法更加的方便快捷

public class DoWork {public static void main(String[] args) {int[] array = {1,2,3,4,5};for (int x : array) {System.out.print(x + " ");}System.out.println();int[] array2 = Arrays.copyOf(array, array.length);for (int x : array) {System.out.print(x + " ");}}

输出结果:

在这里插入图片描述


📑1.2 求数组中元素的平均值


题目要求:给定一个整型数组, 求平均值

我们可以这样做: 遍历数组,对每一个数组元素进行相加并存起来

public class DoWork {public static int sum(int[] array) {int sum = 0;for (int i = 0; i < array.length; i++) {sum += array[i];}return sum;}public static void main(String[] args) {int[] array = {1,2,3,4,5}; int ret = sum(array);System.out.println("sum = " + ret);}

输出结果:

在这里插入图片描述


📑1.3 查找数组中指定元素(顺序查找)


题目要求:给定一个数组, 再给定一个元素, 找出该元素在数组中的位置

分析:我们只需要遍历数组中的元素,再判断是否与要找的元素是否相同

我们可以这样:

public class DoWork {public static int find(int[] array, int k) {for (int i = 0; i < array.length; i++) {if(array[i] == k) {return i;}}return -1;}public static void main(String[] args) {int[] array = {2,3,4,5,6};int arm = 3;int ret = find(array, arm);System.out.println("find = " + ret);}

输出结果:

在这里插入图片描述


📑1.4 查找数组中指定元素(二分查找)


对于有序的数组查找,当然是使用二分查找

我们可以简单的叙述一下:
以升序数组为例,二分查找的思路是先取中间位置的元素,然后使用待查找元素与数组中间元素进行比较:

  1. 如果相等,即找到了返回该元素在数组中的下标
  2. 如果小于,以类似方式到数组左半侧查找
  3. 如果大于,以类似方式到数组右半侧查找

代码方式如下:

public class DoWork {public static int binarySearch(int[] array, int k) {int left = 0;int right = array.length;int mid = 0;int flg = 0;while(left <= right) {mid = (left + right) / 2;if(array[mid] < k) {left = mid + 1;}else if(array[mid] > k) {right = mid - 1;}else {flg = 1;break;}}if(1 == flg) {return mid;}else {return -1;}}public static void main(String[] args) {int[] array = {1,2,3,4,5,6,7,8,9,10};int key = 10;int ret = binarySearch(array, key);System.out.println("ret = " + ret);}

当 key = 10;运行结果

在这里插入图片描述

当 key = -10;就找不到,return -1

在这里插入图片描述

或者,使用Java自带的方法⬇️⬇️⬇️

使用自带的方法更加的方便快捷

public class DoWork {public static void main(String[] args) {int[] array = {1,2,3,4,5,6,7,8,9,10};int key = 6;System.out.println(Arrays.binarySearch(array, key));}

输出结果:

在这里插入图片描述

如果 key = 11,找不到则输出:

在这里插入图片描述

这是它源码中规定的,当找不到时,return -(值 + 1)

在这里插入图片描述


📑1.5 数组排序(冒泡排序)


题目的要求:给定一个数组, 让数组升序 (降序) 排序

基本思路:

  1. 将数组中相邻元素从前往后依次进行比较,如果前一个元素比后一个元素大,则交换,一趟下来后最大元素
    就在数组的末尾
  2. 依次从上上述过程,直到数组中所有的元素都排列好

实现代码如下:

public class DoWork {public static void bubbleSort(int[] array) {for (int i = 0; i < array.length - 1; i++) {for (int j = 0; j < array.length - 1 - i; j++) {if(array[j] > array[j + 1]) {int tmp = array[j];array[j] = array[j+1];array[j+1] = tmp;}}}}public static void main(String[] args) {int[] array = {1,2,4,3,6,5,10,9,7,8};for (int i : array) {System.out.print(i + " ");}bubbleSort(array);System.out.println();for (int i : array) {System.out.print(i + " ");}}

输出结果:

在这里插入图片描述

或者使用Java自带的方法,非常的方便快捷

public class DoWork {public static void main(String[] args) {int[] array = {1,2,4,3,6,5,10,9,7,8};Arrays.sort(array);for (int i : array) {System.out.print(i + " ");}}

输出结果:

在这里插入图片描述


📑1.6 数组逆序


题目要求:给定一个数组, 将里面的元素逆序排列

代码如下:

public class DoWork {public static void main(String[] args) {int[] array = {1,2,3,4,5,6,7,8,9,10};for (int i : array) {System.out.print(i + " ");}System.out.println();for (int i = array.length - 1; i >= 0; i--) {System.out.print(array[i] + " ");}}

输出结果:

在这里插入图片描述


📖 结束语


非常感谢您花时间阅读我的博客,希望我的分享能为您带来收获。如果您对本文有任何想法或疑问,欢迎在评论区留言交流。如果您喜欢我的博客,请继续关注,我会定期更新更多精彩内容。最后,别忘了行动起来的力量,让我们一起实践这些方法,见证自己的成长和进步!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/47299.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【区块链 + 智慧政务】澳门:智慧城市建设之证书电子化项目 | FISCO BCOS应用案例

2019 年 2 月 27 日&#xff0c;澳门政府设立的澳门科学技术发展基金与微众银行达成合作&#xff0c;通过区块链、人工智能、大数据、 云计算等创新技术&#xff0c;共同推进澳门特区的智慧城市建设与未来型城市发展&#xff0c;提升粤港澳大湾区的科创能力。在澳 门智慧城市建…

【数学建模】高温作业专用服装设计(2018A)隐式差分推导

为方便计算&#xff0c;对区域进行离散化处理&#xff0c;采用隐式差分格式进行离散计算。隐式差分格式如图&#xff1a; 每层材料内部 对第 j j j层材料: 其中&#xff0c; λ j \lambda_j λj​表示第 j j j层的热扩散率&#xff0c; c j c_j cj​表示第 j j j层的比热容…

linux需要熟悉的命令理解记忆

(1)光标插入 (1)一般模式下: i 插入到光标前方 记忆方法:在一般模式下, 光标选中字符, 我们按下 i, 就会插入光标的前方, insert, 表示插队 (2)一般模式下: a 插入到光标后方 记忆方法: 在一般模式下, 光标选中字符,a表示append, 添加或者附加的意思 (3) 如果要在行首或者行…

css实现每个小盒子占32%,超出就换行

代码 <div class"visitors"><visitor class"item" v-for"(user,index) in userArr" :key"user.id" :user"user" :index"index"></visitor></div><style lang"scss" scoped&…

java乱码问题

文章目录 1.eclipse所有修改编码的地方2.io读取文件乱码问题1.读写统一2.转换字符编码&#xff1a; 3.http请求返回乱码 1.eclipse所有修改编码的地方 2.io读取文件乱码问题 1.读写统一 如果文件是以UTF-8编码保存的&#xff0c;那么在读取文件时也应使用UTF-8编码。 2.转换…

Apple Vision Pro 和其商业未来

机器人、人工智能相关领域 news/events &#xff08;专栏目录&#xff09; 本文目录 一、Vision Pro 生态系统二、Apple Vision Pro 的营销用例 随着苹果公司备受期待的进军可穿戴计算领域&#xff0c;新款 Apple Vision Pro 承载着巨大的期望。 苹果公司推出的 Vision Pro 售…

百分点科技签约潍坊市数据产业发展战略合作

近日&#xff0c;潍坊市数据产业发展战略合作签约仪式举行&#xff0c;潍坊市人民政府副市长张震生&#xff0c;潍坊市财政局党组书记、局长王金祥&#xff0c;潍坊市大数据局党组书记陈强出席大会并致辞。百分点科技受邀进行战略合作签约&#xff0c;共同见证潍坊市数据要素市…

生成式人工智能(AI)的未来

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

深度学习模型快速开发平台推荐

前言 本文面向深度学习初学者或者工程师&#xff0c;推荐几个常用的深度学习模型快速开发平台。可以帮助初学者快速跑通模型&#xff0c;帮助工程师快速对模型进行部署和应用。 huggingface 简介 不多介绍&#xff0c;全球最大的模型托管平台&#xff0c;该平台最大的特点是…

全网超详细Redis主从部署(附出现bug原因)

主从部署 整体架构图 需要再建两个CentOs7,过程重复单机部署 http://t.csdnimg.cn/zkpBE http://t.csdnimg.cn/lUU5gLinux环境下配置redis 查看自己ip地址命令 ifconfig 192.168.187.137 进入redis所在目录 cd /opt/software/redis cd redis-stable 进入配置文件 vim redi…

JavaWeb入门程序解析(Spring官方骨架、配置起步依赖、SpringBoot父工程、内嵌Tomcat)

3.3 入门程序解析 关于web开发的基础知识&#xff0c;我们可以告一段落了。下面呢&#xff0c;我们在基于今天的核心技术点SpringBoot快速入门案例进行分析。 3.3.1 Spring官方骨架 之前我们创建的SpringBoot入门案例&#xff0c;是基于Spring官方提供的骨架实现的。 Sprin…

勘测院如何实现可控便捷的图纸安全外发?

勘测院&#xff0c;也称为勘测设计研究院或勘测设计院&#xff0c;是进行与地质、地形和地貌有关的勘察测量的单位&#xff0c;为各类工程项目提供准确的地质数据和设计依据。 勘测院会产生各类包括图纸在内的文件&#xff0c;如&#xff1a; 1、项目相关文件&#xff1a;项目…

c++模板初阶----函数模板与类模板

目录 泛型编程 函数模板 函数模板的概念 函数模板的格式 函数模板的原理 函数模板的实例化 函数模板的匹配原则 类模板 类模板的定义格式 类模板的实例化 c的模板大致可以分为&#xff1a; 函数模板类模板 首先在我们引入模板之前&#xff0c;先进行介绍泛型编程 泛…

期权黑天鹅怎么应对?近期很有可能发生的事情!

今天带你了解期权黑天鹅怎么应对&#xff1f;在当今世界&#xff0c;投资者们不断地寻找着各种策略来应对市场的波动和不确定性。其中&#xff0c;黑天鹅策略在近年来逐渐受到了广泛的关注&#xff0c;这种策略主要是利用极端事件&#xff0c;例如突发事件或自然灾害等难以预测…

【React笔记初学总结一】React新手的学习流程笔记总结,掰开了揉碎了,下载安装基础结构学习

REACT学习记录 一、React是什么&#xff1a;二、尝试安装下载&#xff1a;三、理解都有什么四、基础网页学习&#xff1a;1.几个比较重要的资源包例子2.第一个react示例&#xff1a;&#xff08;掰开了揉碎了&#xff0c;咱们先看懂它最简单的结构&#xff09;3.第二个react示例…

C++链接FTP服务器并下载数据(在qt中编写)

.pro文件 #------------------------------------------------- # # Project created by QtCreator 2024-07-16T13:19:03 # #-------------------------------------------------QT core gui networkgreaterThan(QT_MAJOR_VERSION, 4): QT widgetsTARGET untitled TE…

Qt实现IP地址输入框-自定义控件

在 许多应用程序中&#xff0c;我们经常需要使用IP地址。为了方便用户输入和处理&#xff0c;一个好的解决方案是使用自定义控件。本示例代码使用Qt编写一个名为“IPAddress”的自定义控件来实现IP地址的输入功能。通过使用此控件&#xff0c;用户可以方便地输入和处理IP地址。…

吴恩达机器学习笔记 三十八 二进制标签 均值归一化

标签 0 和 1 可以有很多种意义。从回归到二分分类&#xff1a;之前定义 ,而对于二进制标签&#xff0c;通过给出y^(i,j)为 1 的概率&#xff0c;其中 损失函数 均值归一化 计算每个电影的平均得分&#xff0c;例如第一部电影的平均分为2.5&#xff0c;第五部电影的平均分为1.2…

如何在excel表中实现单元格满足条件时整行变色?

可以试试使用条件格式&#xff1a; 一、条件格式 所谓“自动变色”就要使用条件格式。 先简单模拟数据如下&#xff0c; 按 B列数字为偶数 为条件&#xff0c;整行标记为蓝色背景色。 可以这样设置&#xff1a; 先选中1:10行数据&#xff0c;在这里要确定一下名称栏里显示…

pico+unity3d手部动画

在 Unity 开发中&#xff0c;输入系统的选择和运用对于实现丰富的交互体验至关重要。本文将深入探讨 Unity 中的 Input System 和 XR Input Subsystem 这两种不同的输入系统&#xff0c;并详细介绍它们在控制手部动画方面的应用。 一、Input System 和 XR Input Subsystem 的区…