Java数组和Arrays 类
1、创建数组的三种方式:
①动态初始化:数组的初始化和数组元素的赋值操作分开进行
dataType[ ] arrayRefVar = new dataType [ arraySize ] ;
Emp [] emps=new Emp[3]; Emp emp1=new Emp(null,"a1",12,"0"); Emp emp2=new Emp(null,"aa2",13,"1"); Emp emp3=new Emp(null,"aaa3",14,"0"); emps[0]=emp1; emps[1]=emp2; emps[2]=emp3;
②类型推断: dataType[ ] arrayRefVar = { value1,value2,..., valueN };
Emp emp1 = new Emp(null, "a", 23, "男"); Emp emp2 = new Emp(null, "aa", 23, "男"); Emp emp3 = new Emp(null, "aaa", 23, "男"); Emp[] emps = {emp1, emp2, emp3};
③静态初始化:数组的初始化和数组元素的赋值操作同时进行
dataType[ ] arrayRefVar = new dataType [ ] {value1,value2,..., valueN };
Emp emp11=new Emp(8,"sdh",133,"1"); Emp emp22=new Emp(9,"sds",134,"0"); Emp[] emps11 = new Emp[] {emp11,emp22};
总结:有且总有一个体现元素个数的位置
2、数组的特点:
①数组是序排列的
②数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型
③创建数组对象会在内存中开辟一整块连续的空间
④数组的长度一旦确定,就不能修改。
3、数组的分类:
① 维数:一维数组、二维数组、。。。
② 数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组
4、一维数组元素的默认初始化值
> 数组元素是整型:0
> 数组元素是浮点型:0.0
> 数组元素是char型:0或'\u0000',而非'0'
> 数组元素是boolean型:false
> 数组元素是引用数据类型:null
5、数组常见的异常类型
①.数组角标越界异常:ArrayIndexOutOfBoundsException
②.空指针异常:NullPointerException
二维数组的声明与初始化 正确的方式: int[] arr = new int[]{1,2,3};//一维数组 //静态初始化 int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}}; //动态初始化1 String[][] arr2 = new String[3][2]; //动态初始化2 String[][] arr3 = new String[3][]; //也是正确的写法: int[] arr4[] = new int[][]{{1,2,3},{4,5,9,10},{6,7,8}}; int[] arr5[] = {{1,2,3},{4,5},{6,7,8}};//类型推断
二维数组元素的默认初始化值
* 规定:二维数组分为外层数组的元素,内层数组的元素
* int[][] arr = new int[4][3];
* 外层元素:arr[0],arr[1]等
* 内层元素:arr[0][0],arr[1][2]等
*
* 数组元素的默认初始化值
* 针对于初始化方式一:比如:int[][] arr = new int[4][3];
* 外层元素的初始化值为:地址值
* 内层元素的初始化值为:与一维数组初始化情况相同
*
* 针对于初始化方式二:比如:int[][] arr = new int[4][];
* 外层元素的初始化值为:null
* 内层元素的初始化值为:不能调用,否则报错。
Arrays 类
java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。
具有以下功能:
- 给数组赋值:通过 Arrays.fill 方法。
- 对数组排序:通过 Arrays.sort 方法,按升序。
- 比较数组:通过 Arrays.equals 方法比较数组中元素值是否相等。
- 查找数组元素:通过 Arrays.binarySearch 方法能对排序好的数组进行二分查找法操作
- 将数组变成字符串(public static String toString(数组))Arrays.toString()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧