Java中的一维数组操作语法格式介绍
目录
- 作者介绍
- 前言
- 一、数组介绍
- 二、数组元素的操作
-
-
- 🔶数组元素的访问
- 🔶数组元素修改
- 🔶数组元素的遍历
-
- 三、数组的定义格式
- 四、打印数组名的效果
-
-
- 🔷打印普通数组名
- 🔷打印字符数组名
-
- 五、数组的静态初始化
-
-
- 🔶静态初始化的含义
- 🔶静态初始化格式
-
- 六、数组的动态初始化
-
-
- 🔷动态初始化的含义
- 🔷动态初始化的格式
- 🔷 数组动态初始化的默认值
-
- ⭐代码演示
-
- 七、两种初始化的区别
-
-
- ☀️动态初始化
- ☀️静态初始化
-
- 八、数组常见问题
-
-
- ⭕空指针异常
-
- ⭐代码演示
- ⭕索引越界异常
-
- ⭐代码演示
-
- 九、综合练习题
-
-
- ❓数组遍历-求偶数和
- ❓数组遍历-求最大值
- ❓对10个整数从小到大排序
-
- 💯习题答案
- 作者:KJ.JK
作者介绍
⭐ 作者简介:KJ.JK,CSDNJava领域新星作者 ⭐ 参加获奖过蓝桥杯、中国软件杯云计算、互联网+、创新创业大赛银奖 ⭐ 力扣、洛谷、牛客网、Vijos共3000道刷题记录 ⭐ 欢迎大家 点赞👍 收藏💖 关注🔒
前言
今天我们学习JavaEE里面的一维数组,=话不多说,上代码!💪💪💪
一、数组介绍
数组指的是一种容器,可以用来存储同种数据类型的多个值
二、数组元素的操作
🔶数组元素的访问
* 格式:数组名 [ 索引 ]; * 范例: arr[0]; * 索引:索引是数组容器中空间的编号,编号从0幵始,逐个+1增长 //当访问了数组中不存在的索引,就会引发索引越界异常
🔶数组元素修改
* 格式:数组名 [ 索引 ]=修改元素; * 范例: arr [0]=5 ;
🔶数组元素的遍历
* 格式:数组名.length //获取元素个数,元素长度 * 范例:arr.length //arr.length-1是索引长度
三、数组的定义格式
* 格式1:数组类型 [] 数组名 * 范例1: int[] array * 格式2: 数据类型 数组名 [] * 范例2: int array []
四、打印数组名的效果
🔷打印普通数组名
public class Main { public static void main(String[] args) { /* [I@10f87f48 : 数组的内存地址@: 分隔符[: 当前内存空间是一个数组类型I: 当前空间中存储的数据是int类型10f87f48 : 十六进制地址值 */ int [] arr=new int[]{10,20,30}; System.out.println(arr); double [] darr=new double[]{11.1,22.2,33.3}; System.out.println(darr); }}
🔷打印字符数组名
public class Main { public static void main(String[] args) { /*打印字符数组,不会看到地址值,是具体的内容 原因:println()源码中会自动对字符数组进行遍历操作 */ char [] arr={'a','b','c'}; System.out.println(arr); }}
五、数组的静态初始化
🔶静态初始化的含义
初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程
🔶静态初始化格式
* 完整格式:数据类型[] 数组名 = new 数据类型[] { 元素1,元素2,元素3… };* 范例:int[] array = new int[]{ 11,22,33 }; //[]这里的里面不能加数字 double[] array2 = new double[] { 11.1,22.2,33.3};* 简化格式:数据类型[] 数组名 = { 元素1,元素2,元素3… };* 范例:int[] array = { 11,22,33 };double[] array2 = { 11.1,22.2,33.3};// 注意:double [] arr={12,20,5.2}; 这样子是可以的,单个整数或者带小数也一样可以
六、数组的动态初始化
🔷动态初始化的含义
动态初始化:初始化时只指定数组长度,由系统为数组分配初始值
🔷动态初始化的格式
* 格式:数据类型[] 数组名 = new 数据类型[数组长度];* 范例:int [] arr=new int [3]; //【3】其实就是数组的元素个数/* 注意:1.允许数组间进行赋值,赋值的是自己所记录的地址值2.当两个数组通过地址指向同一块内存空间的时候,只要有一个对空间的数据发生了修改, 那么另外一个去查找的时候,找到的就是改变之后的那份数据*/
🔷 数组动态初始化的默认值
⭐代码演示
七、两种初始化的区别
☀️动态初始化
* 动态初始化:手动"指定数组长度",由系统给出默认初始化值* 使用场景:只明确元素个数,不明确具体数值,推荐使用动态初始化例:使用数组容器来存储键盘录入的5个整数 int [] arr=new int[5]; arr[0]=1; arr[1]=2; arr[2]=3; arr[3]=4; arr[4]=5;
☀️静态初始化
* 静态初始化:手动"指定数组元素",系统会根据元素个数,计算出数组的长度 * 使用场景:需求中已经明确了要操作的具体数据,直接静态初始化即可 例:将一班的学生的成绩存入数组中: 11,22,33 int [] arr={11,22,33};
八、数组常见问题
⭕空指针异常
空指针异常:当引用数据类型变量被赋值为null之后,地址的指向被切断,还继续访问堆内存数据,就会引发空指针异常//注意:当访问到数组长度的时候(堆内存数据),就会报空指针异常,不会等到打印的时候
⭐代码演示
public class Main { public static void main(String[] args) { int [] arr=new int[2]; arr=null; System.out.println(arr[0]); //NullPointerException }}
⭕索引越界异常
索引越界异常:当访问了数组中不存在的索引,就会引发索引越界异常
⭐代码演示
public class Main { public static void main(String[] args) { int [] arr={11,22,33}; System.out.println(arr[10]); //ArrayIndexOutOfBoundsException }}
九、综合练习题
❓数组遍历-求偶数和
//答案在末尾
❓数组遍历-求最大值
//答案在末尾
❓对10个整数从小到大排序
//答案在末尾
💯习题答案
数组遍历-求偶数和练习答案
public class Main { public static void main(String[] args) { int [] arr={11,22,33,44,55}; int sum=0; for (int i = 0; i < arr.length; i++) { if(arr[i]%2==0){ sum+=arr[i]; } } System.out.println(sum); }}
数组遍历-求最大值练习答案
public class Main { public static void main(String[] args) { int [] arr={5,44,33,55,22}; int max=arr[0]; for (int i = 0; i < arr.length; i++) { if(arr[i]>max){ max=arr[i]; } } System.out.println(max); }}
对10个整数从小到大排序练习答案
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner rd=new Scanner(System.in); int [] arr=new int[10]; for (int i = 0; i < arr.length; i++) { arr[i]=rd.nextInt(); } for (int i = 0; i < arr.length-1; i++) { for (int j = i+1; j < arr.length; j++) { if(arr[i]>arr[j]){ int temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } }}
作者:KJ.JK
文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习