java数组
2021/6/9 20:30:36
本文主要是介绍java数组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 什么是数组
- 数组的生命和创建
- 数组初始化
- 数组的常见异常
- 数组的内存分析
- 二维数组
- Arrays的使用
- 冒泡排序
- 稀疏数组
什么是数组
- 同一种类型数据的集合。其实数组就是一个容器。
- 数组里的每个数据就是一个元素,可以用下表来访问(下标从0开始)
数组的生命和创建
//格式1: //元素类型[] 数组名 = new 元素类型[元素个数或数组长度]; int[] arr = new int[5]; //格式2: //元素类型[] 数组名 = new 元素类型[]{元素,元素,……}; int[] arr = new int[]{3,5,1,7}; int[] arr = {3,5,1,7};
注意:给数组分配空间时,必须指定数组能够存储的元素个数来确定数组大小。创建数组之后不能修改数组的大小。可以使用length 属性获取数组的大小。
数组初始化
int[] x = new int[3]; x[0] = 1; x[1] = 2; //没赋值x[2]默认是int的默认值0 //另一种定义:该形式可以直接明确数组的长度,以及数组中元素的内容 int[] x = { 1, 2, 3 }; int[] x=new int[]{1,2,3}; //如果数组初始化中不使用运算符new。需要注意:下列写法是错误的。 int[] arr; arr={1,2,3,4,5}; //此时初始化数组,必须将声明,创建,初始化都放在一条语句中个,分开会产生语法错误。 //获取到数组中元素的个数,也就是数组的长度. 数组名.length int[] x = { 1, 2, 3 }; for (int y = 0; y < x.length; y++) { System.out.println(x[y]); } // 这就是数组的第一个遍历操作.
数组的常见异常
-
NullPointerException 空指针异常
原因: 引用类型变量没有指向任何对象,而访问了对象的属性或者是调用了对象的方法。 -
ArrayIndexOutOfBoundsException 索引值越界。
原因:访问了不存在的索引值。
数组的内存分析
二维数组
多维数组:实质就是存储是数组的数组
二维数组:实质就是存储是一维数组。
数组定义:
数组类型[][] 数组名 = new 数组类型[一维数组的个数][每一个一维数组中元素的个数];
int[][] a = new int[2][3]; //相当于定义了2个lenth为3的1维数组 //a[0]代表第一个一维数组,a[1]代表第二个一维数组 //a.lenth表示有多少个一维数组(2个),a[0].lenth表示a[0]这个一维数组的长度(3) //初始化 //静态初始化: int[][] a = new int[][]{ {12,34,45,89},{34,56,78,10},{1,3,6,4} }; //动态初始化: int[][] a = new int[3][4]; for(int i = 0; i<a.lenth ;i++){ for(int j = 0; i<a[j].lenth ;j++){ a[i][j]=(i-1)*j+j; } }
Arrays的使用
遍历: toString() 将数组的元素以字符串的形式返回
排序: sort() 将数组按照升序排列
查找: binarySearch()在指定数组中查找指定元素,返回元素的索引,如果没有找到返回(-插入点-1) 注意:使用查找的功能的时候,数组一定要先排序
冒泡排序
- 比较相邻的元素。如果第一个比第二个大,就交换它们两个。
- 对每一对相邻的元素都进行比较,等所有的比较完后最后一个数字是这堆数据里的最大数字。
- 重复步骤一,直到排序完成。
动图演示(图片来源https://forestcat.blog.csdn.net/)
代码实现:
int []arr= {3,2,8,4,7};//创建数组 for(int i=0;i<arr.length-1;i++) { for(int j=0;j<arr.length-i-1;j++) { if(arr[j]>arr[j+1]) { int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } }
稀疏数组
稀疏数组可以看做是普通数组的压缩,但是这里说的普通数组是值无效数据量远大于有效数据量的数组
压缩存储可以节省存储空间以避免资源的不必要的浪费,在数据序列化到磁盘时,压缩存储可以提高IO效率
//原数组 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 //其稀疏数组形式: //第一行存储原始数据总行数,总列数,总的非0数据个数 //接下来每一行都存储非0数所在行,所在列,和具体值 5 8 2 1 2 1 2 4 2
这篇关于java数组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南