当前位置: 首页 > news >正文

Java--数组的应用

一、数组的地址值

数组的地址值表示数组在内存中的位置。

[I@1eb44e46
  • [ :表示当前是一个数组
  • I:表示当前数组是int类型
  • @:表示一个间隔符号(固定格式)
  • 1eb44e46:数组真正的地址值(十六进制)

二、数组元素访问

格式:数组名[索引];

索引:

  1. 也叫下标,角标
  2. 特点:从0开始,逐+1增长,连续不间断

获取数组中的元素:

public class ArrayDemo2 {public static void main(String[] args){//利用索引对数组中的元素进行访问//1.获取数组里的元素//格式:  数组名[索引]int[] arr = {1,2,3,4,5};//获取数组中的第一个元素//0索引上对应的元素int number = arr[0];System.out.println(number);System.out.println(arr[0]);}
}

把数据存储到数组中 

//2.把数据存储到数组中//格式   数组名[索引] = 具体数据/变量;arr[0] = 100;System.out.println(arr[0]);
//一旦覆盖,原来的数据就不存在

 三、数组遍历

数组遍历:将数组中的所有内容取出来,取出来可以(打印,求和,判断...)

public class ArrayDemo3 {public static void main(String[] args){//1.定义数组int[] arr = {1,2,3,4,5};//获取数组里面的所有元素//格式   数组名[索引]System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);System.out.println(arr[3]);System.out.println(arr[4]);//利用循环改进//开始:0     结束:数组长度 - 1for(int i = 0;i < 5;i++){//i可取0,1,2,3,4System.out.println(arr[i]);}//在Java中,关于数组的一个长度属性,length//调用方式:数组名.lengthSystem.out.println(arr.length);for(int i = 0;i < arr.length;i++){System.out.println(arr[i]);}//扩展://自动生成数组的遍历方式//数组名.forifor (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}}
}

四、数组动态初始化

动态初始化:初始化只指定数组长度,由系统为数组分配初始值。

格式: 数据类型[ ]  数组名 = new  数据类型[数组长度];

public class ArrayDemo4 {public static void main(String[] args){/*定义一个数组,用来存放班级50个学生姓名姓名未知,等学生报道后,进行添加*/String[] arr = new String[50];//添加学生arr[0] = "zhangsan";arr[1] = "lisi";//获取System.out.println(arr[0]);//zhangsanSystem.out.println(arr[1]);//lisiSystem.out.println(arr[2]);//打印出来的是默认初始化null}
}

 数组默认初始化的规律

  • 整数类型:默认初始化值0
  • 小数类型:默认初始化值0.0
  • 字符类型:默认初始化值'/u0000'空格
  • 布尔类型:默认初始化值false
  • 引用数据类型:默认初始化值null 

五、数组动态初始化和静态初始化的区别

动态初始化:手动指定数组长度,由系统给出默认初始化值。

  • 只明确元素个数,不明确具体数值,推荐使用动态初始化

静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组的长度。

  • 需求中已经明确了要操作的具体数据,直接静态初始化即可

六、数组中常见的问题

索引越界异常是因为访问了不存在的索引,要使得索引寻找顺利,就需要知道索引的最大值(数组长度 - 1)和最小值(0).

 

 

http://www.xdnf.cn/news/74539.html

相关文章:

  • 【Linux网络】应用层自定义协议与序列化
  • 怎么发布、更新Python第三方库?以potx-cloud为例
  • 算法学习(二)
  • PID控制程序编写
  • 20242817李臻《Linux⾼级编程实践》第8周
  • 辛格迪客户案例 | 浙江高跖医药委托生产质量管理协同(OWL MAH)项目
  • 2025-0421学习记录16——文献阅读与分享(1)
  • 判断链表是否为环(Java版本自己用)
  • 【技术追踪】Differential Transformer(ICLR-2025)
  • VMware制作Windows虚拟机模板注意点
  • 市场分析 3 mysql (槽)
  • vue部署到nginx服务器 启用gzip
  • 4月22日直播预告|AI赋能开发提效,三大应用场景实战分享
  • JavaScript实现二级菜单
  • 代码随想录第21天: 回溯算法3
  • Linux随记(十七)
  • SpringBoot入门实战(第二篇:MySQL集成配置)
  • 基于框架表示的不确定性推理
  • Web前端:Overflow属性(超出裁剪属性)
  • Emacs入门篇2:安装evil插件以便vi老用户可以使用VI快捷键来快速使用Emacs
  • 共建智能体时代 | 华宇亮相超聚变探索者大会2025
  • 为什么Makefile中的clean需要.PHONY
  • navicat 远程云服务器的mysql问题
  • linux上Flexlm命令
  • Dify - 整合Ollama + Xinference私有化部署Dify平台(02 )通过Docker安装Dify
  • 强化学习(Reinforcement Learning, RL)​​与​​深度强化学习(Deep Reinforcement Learning, DRL)​​
  • 高效实现账号互斥登录
  • okcc呼叫中心两个sip对接线路外呼任务怎么设置才能一个任务对应yigesip中继?
  • 多表查询之连接查询
  • 07.Python代码NumPy-排序sort,argsort,lexsort