首页 > Python资料 博客日记
Java数组(这一篇就够了)(超详细)
2024-07-12 23:00:05Python资料围观67次
文章内容仅代表个人理解,如有错误欢迎到评论区指点,文章内容仅供参考——
本篇对java中的数组进行详细的讲解
目录:
本期会分成一下五部分进行讲解:
- 认识数组
- 数组常见的问题
- Java中的数组有哪些独特之处?
- 数组的应用场景
- 数组中用到的算法
一、认识数组
1.数组的定义
文字定义:数组是一种数据结构,用于存储多个相同类型的数据。
java中 "类型[ ]" 即数组,并且索引下标从0开始。
2.数组的创建及初始化
在java中如何创建数组呢?
(1)静态创建
(2)动态创建
运行结果
(3)遍历数组
1.常规遍历
2.foreach遍历
这里看起来foreach更加简洁,但是ta不能修改数组的值,和单独访问下标索引。
二、数组常见的问题
1.数组越界
通常小白初学尝尝会遇到的问题就是数组越界
认识什么是数组越界
简单的例子,创建只有5个大小的整形数组,但是for循环却访问了下标索引为5(索引从0开始)的位置,导致数组越界,下面就是数组越界的异常提示!
小白看到这一大堆,心都快烦死了,其实要学会认识异常
(1)数组的拷贝(扩容)
通常我们在给数组添加元素时经常发生越界异常,所以要判断是否越界,那么越界又该如何处理呢
首先我们创建一个返回值为数组类型的方法用来添加元素
只需返回数组的引用即可——
copyOf是Arrays类中的方法,一般扩容都用ta~
运行一下
可以看到并没有出现异常,而是扩容了1.5倍~
说到扩容System类下也有一个,简单认识一下吧~
2.空指针异常
在二维数组中会出现空指针异常,这里简单认识一下埋下伏笔,在多维数组详细讲解——
3.数组作为传参,调用该方法时,是否改变原数组?
这里有两个方法,猜测一下,哪个会改变原本数组的值?
揭晓答案
其实在new的时候底层大概是这样的
三、Java中的数组有哪些独特之处?
1.数组是引用类型,可以使用new来创建
2.拥有封装好的Arrays类,可以数组排序、数组转字符串等。
Arrays中有许多方法,如上面学到的 扩容 Arrays.copyOf还有比如sort排序、binarySearch二分查找(有序数组)、toString等
方法还有很多,大家要努力哦~
四、数组的应用场景
1.多维数组(不规则数组)
数组我们可以有一维数组、二维、三维...
我们拿常用的二维数组举例,创建一个不规则数组
先认识一下什么是二维数组,长什么样子 形如 类型[ ][ ] 的数组为二维数组
这是静态创建,大家结合一维数组想一下动态二维数组如何创建呢?
代码实现如下
那么究竟怎样出现的空指针异常呢?
没有给内层设置空间的时候会出现空指针异常
当你执行 array2[i] = new int[i+1]; 这行代码时,你为 array2 的第 i 个内层数组分配了空间。如果不执行这行代码,内层数组的引用仍然为 null,在尝试访问该内层数组时就会导致空指针异常。因此,需要在循环中为每个内层数组分配空间,以避免空指针异常的发生。
2.ArrayList
ArrayList内部使用数组作为底层的数据结构来存储元素。
3.数组作为方法的返回值
这个在拷贝数组的时候我们见到过
五、数组中用到的算法
1.二分查找
这里我没有返回-1,而是抛出没找到的异常。快速排序和归并排序也尝尝用到哦~
好啦看到这里想必您对Java中的数组有了新的认知和了解,如果对您有帮助的话请帮我点个一件三连!谢谢!谢谢!谢谢!
我只是个初学者——
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Anaconda版本和Python版本对应关系(持续更新...)
- Python与PyTorch的版本对应
- Windows上安装 Python 环境并配置环境变量 (超详细教程)
- Python pyinstaller打包exe最完整教程