Java学习之数组的简单用法
要是觉得内容枯燥,您可以点击左下角的播放按钮,让您在音乐的熏陶下愉快的阅读
本文总字数:1792
•概念
其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作。
数组本身属于引用数据类型,那么既然是引用数据类型,这里面实际又会牵扯到内存分配;
而数组的定义语法有两种:
- 静态初始化
- 动态初始化
•静态初始化
简化格式
- 数据类型 数组名称 = {值, 值,…}
- int[] x = {0,1,2,3};
完整格式
- 数据类型 数组名称 = new 数据类型[] {值, 值,…}
- int[] y = new int[]{0,1,2,3};
在开发之中,对于静态数组的初始化强烈建议使用完整语法模式;
这样可以轻松地使用匿名数组这一概念。
public class TestArray { public static void main(String[] args) { System.out.println(new int[] {1,2,3}.length); } }使用静态方式定义数组的时候,最好写上完整格式。
•动态初始化
数据类型[ ] 数组名称 =
new
数据类型[长度]
- int[] a = new int[10];//动态初始化数组,先分配空间
需要注意的是数组属于引用数据类型,所以在数组使用之前一定要开辟空间(实例化);
如果使用了没有开辟空间的数组,则一定会出现 NullPointerException 异常信息;
•数组中的简单操作
数组的访问通过索引完成,即 a[0],a[1],.......,a[9]
通过 a.length 获取数组 a 的长度
•arraycopy
参数
System.arraycopy(src, srcPos, dest, destPos, length);
src 表示源数组
srcPos 表示源数组中拷贝元素的起始位置
dest 表示目标数组
destPos 表示拷贝到目标数组的起始位置
length 表示拷贝元素的个数
需要注意的是在进行数组拷贝时,目标数组必须有足够的空间来存放拷贝的元素,否则就会发生下标越界异常。
public class TestArray { public static void main(String[] args) { int[] a = {0,1,2,3,4}; int[] b = new int[10]; for(int i = 0;i < b.length;i++) b[i] = -1; System.arraycopy(a, 0, b, 1, a.length); for(int x : b) System.out.print(x+" "); } }输出结果
•数组填充
java 中的数组初始值都为零,若想要快速填充一个其他值,可以用 Arrays.fill 方法;
但只能填充一个一维数组,多维数组得用循环。
int[] array = new int[10];
Arrays.fill(arrayname,value)
- Arrays.fill(array,50);//array[0,...,9] = 50;
Arrays.fill(arrayname,a,b,value)
- 填充区间 [a,b)
- Arrays.fill(array,2,5,50);//array[2,..,4] = 50;
填充多维数组
public class TestArray { public static void main(String[] args) { int array[][]=new int[10][10]; for(int i=0;i < 10;++i) Arrays.fill(array[i],50); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~