Java中的数组(Array)
1.什么是数组
数组(array)是一种用于存储多个相同类型数据的存储模型
2.数组定义格式
第一种:数据类型[] 数组名
示例:
int[] arr;
double[] arr;
char[] arr;
第二种:数据类型 数组名[]
示例:
int arr[];
double arr[];
char arr[];
3.数组初始化
3.1概述:Java中的数组必须先初始化,然后才能使用。所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值
3.2动态初始化
初始化时只指定数组长度,由系统为数组分配初始值
格式:数据类型 [ ] 变量名 = new 数据类型[数组长度];
范例: int [ ] arr = new int[3];
3.3静态初始化
初始化时指定每个数组元素的初始值,由系统决定数组长度
格式:数据类型 [ ] 变量名 = new 数据类型[ ] { 数据1 ,数据2 ,数据3 ,……} ;
范例: int [ ] arr = new int[ ] { 1, 2 , 3 } ;
简化格式:数据类型 [ ] 变量名 = { 数据1 ,数据2 ,数据3 ,……} ;
范例: int [ ] arr = { 1, 2 , 3 } ;
3.4数组元素访问
什么是索引?
每一个存储到数组的元素,都会自动的拥有一个编号,从0开始。
这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。
索引是数组中数据的编号方式
作用:索引用于访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名
特征①:索引从0开始
特征②:索引是连续的
特征③:索引逐一增加,每次加1
访问数组元素格式:数组名[索引];
示例:
public class ArrayDemo {public static void main(String[] args) {int[] arr = new int[3];//输出数组名System.out.println(arr); //[I@880ec60(地址)//输出数组中的元素System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);}
}
4.Java中的内存分配
栈内存:存储局部变量
定义在方法中的变量,例如:arr
使用完毕,立即消失
堆内存:存储new出来的内容(实体,对象)
数组在初始化时,会为存储空间添加默认值
整数:0
浮点数:0.0
布尔:false
字符:空字符
引用数据类型:null
每一个new出来的东西都有一个地址值
使用完毕,会在垃圾回收器空闲时被回收
5.数组操作的两个常见小问题
5.1索引越界异常(ArrayIndexOutOfBoundsException)
public class ArrayDemo {public static void main(String[] args) {int[] arr = new int[3];System.out.println(arr[3]);}
}
数组长度为3,索引范围是0~2,但是我们却访问了一个3的索引。
程序运行后,将会抛出ArrayIndexOutOfBoundsException 数组越界异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。
解决方案
将错误的索引修改为正确的索引范围即可!
5.2空指针异常(NullPointerException)
public class ArrayDemo {public static void main(String[] args) {int[] arr = new int[3];//把null赋值给数组arr = null;System.out.println(arr[0]);}
}
arr = null 这行代码,意味着变量arr将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候会抛出 NullPointerException 空指针异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。
解决方案
给数组一个真正的堆内存空间引用即可!
6.数组的输出
for循环遍历输出
直接以数组名输出(只有char型数组可以输出内容,其他类型的输出的是内存地址)
public static void main(String[] args) {int[] arr = new int[]{1,4,7};char[] brr = new char[]{'1','2','3'};String[] crr = new String[]{"1","2","3"};System.out.println(arr);System.out.println(brr);System.out.println(crr);}
结果图:
以Arrays.toString(数组名)输出(带格式输出)
public static void main(String[] args) {int[] arr = new int[]{1,4,7};System.out.println(Arrays.toString(arr));}
结果图:
如果想打印多维数组可以使用Arrays.deepToString方法
public static void main(String[] args) {int[][][] arr = new int[3][3][3];System.out.println(Arrays.deepToString(arr));}
结果图:
Java中的数组(Array)相关推荐
- Java中的数组Array
1.数组的基本性质: ①java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object. ②数组实际上是一个容器,可以同时容纳多个元素(数组是一个数据的集合).数组中每一个元 素 ...
- java中set怎么建int型_使用Array.setInt来填充Java中的数组
为了填充Java中的数组,我们使用Array.setInt()方法.java.lang.reflect.Array.setInt(Object array,int index,int value)方法 ...
- Java中的数组数据结构需要了解的要点
首先,数组是Java中的对象.它们不是像int.short或long这样的基本类,也不是具有很多方法的全功能对象,但由于它们是对象,所以它们隐式地扩展了Object,这就是为什么可以使用数组引用(例如 ...
- java矩阵加法_在java中的数组加法?
我到目前为止有一个程序要求用户选择一些元素.该程序然后要求用户选择数量由元素数量指示的次数.我将如何使用数组以及while或for循环找到这组数字的方差.我在高中时没有什么特别的感觉.下面是我当前的代 ...
- java面试题24 关于Java中的数组,
java面试题24 关于Java中的数组,下面的一些描述,哪些描述是准确的:( ) A 数组是一个对象,不同类型的数组具有不同的类 B 数组长度是可以动态调整的 C 数组是一个连续的存储 ...
- js解析java对象数组_js接收并转化Java中的数组对象的方法
在做项目时,要向ocx控件下发命令,就要在js中得到java中的对象,然后拼成一种格式,下发下去...当对象是一个时比较简单,但如果对象是一个数组时,就略显麻烦了. 开始我以为有简单的方式,可以直接进 ...
- js中的数组Array定义与sort方法使用示例
js中的数组Array定义与sort方法使用示例 Array的定义及sort方法使用示例 Array数组相当于java中的ArrayList 定义方法: 1:使用new Array(5 )创建数 ...
- [转载] java中对数组进行排序_如何在Java中对数组排序
参考链接: Java中main()的有效变体 java中对数组进行排序 Java Array is like a container that can hold a fixed number of t ...
- java数组删除数组元素_如何在Java中删除数组元素
java数组删除数组元素 When we create an array in Java, we specify its data type and size. This is used by JVM ...
最新文章
- @Autowire 和 @Resource 注解使用的正确姿势,别再用错的了!!
- 20201010《近代数学》第1节课 笔记
- 用python爬取网页数据并存入数据库中源代码_Python爬取51cto数据并存入MySQL方法详解...
- linux下expdp定时备份_Linux 自动备份 Oracle 数据库 Shell 脚本
- shell(一)——概述、变量、运算符
- Spring: Spring 从xml获取bean
- mysql分组按天统计数据_MySql按周,按月,按日分组统计数据
- java用hashmap_Java集合之HashMap的用法
- c语言输出七个换行6,多样例输出,如何去掉最后一个回车
- clickhouse SummingMergeTree表引擎
- 世界主要城市地铁地图
- 深度学习11-tf.data详解以及猫狗图片分类实战
- matplotlin 入门
- Javascript之基本包装类型
- Visual studio code清除终端数据
- 电磁场与电磁波公式总结
- 三菱485BD板学习和认识
- 缺陷报告.定义,报告,核心要素
- 阿里巴巴-新加坡南洋理工大学成立联合研究院 开展全方位AI合作
- canopen pdo通信c语言,CANopen通信之PDO通信