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

数组(Array)-Java

一、数组的定义

1、数组概述:是一个容器,本身属于引用数据库类型。

2、作用:一次存储多个数据。

3、特点:

(1)既可以存储基本数据类型,也可以存储引用数据类型。

(2)定长:数组定义时长度为多少,使用时就做多能存储多少数据。

4、定义

(1)动态初始化:在定义数组时,只规定长度

数据类型[] 数组名 = new 数据类型[]

(2)静态初始化:定义时直接给出数据

数据类型[] 数组名 = new 数据类型[] {元素1,元素2,...} => 不常用 数据类型[] 数组名 = {元素1,元素2,...} =>推荐使用
//动态定义 int[] arr1 = new int[5] String[] arr2 = new String[5] //静态定义 String arr3 = {"张三","李四"}

二、数组的操作

1、获取数组的长度

(1)格式

数组名.length

(2)注意:length后面不要带小括号,因为length不是方法,而是属性。

2、索引

(1)特点:元素在数组中存放的位置(下标)。

(2)特点:

a、索引唯一。

b、索引都是从0开始的,最大索引长度是数组长度-1

(3) 索引的作用:用来查找和存储数据。

3、存储元素

格式:

数组名[索引值] = 值
int[] arr1 = new int[3]; Scanner sc = new Scanner(System.in); for (int i = 0; i < arr1.length; i++) { // arr1.length动态控制添加几个数据 arr1[i] = sc.nextInt(); }

4、获取元素

(1)格式

数组名[索引值]

(2)注意:

a、直接输出数组名,会输出数组在内存中的地址。

b、如果元素中没有存数据,获取数据时,会获取到元素的默认值。

整数:0 小数:0.0 引用数据类型:null

5、数组的遍历

遍历:将元素从数组中一个个获取出来(循环)

int[] arr1 = new int[3]; for (int i = 0; i < arr1.length; i++) { System.out.println(arr1[i]); }

三、操作数组常见异常

1、索引越界异常:ArrayIndexOutBoundsException

int[] arr = new int[3]; //超出索引范围,就会抛出异常 arr[5] = 100;

2、空指针异常:NullPinterException

原因:当一个对象为null时,再调用此对象中的其他成员。

int[] arr = new int[3]; arr = null; //将数组置为空 System.out.println(arr.lenght) //抛出异常

练习

//查找数组中元素的最大值 int[] arr = {10,15,3,46,50,22,34}; int temp = arr[0]; for(int i =1 ; i<arr.length;i++){ if(temp<arr[i]){ temp=arr[i]; } } System.out.println(temp);

四、数组的高级使用

1、数组复制

int[] arr1 = {1,2,3,4}; int[] arr2 = new int[4]; for (int i = 0; i < arr1.length; i++) { arr2[i] = arr1[i]; }

2、数组扩容:改变地址值。

int[] ald_arr = {1,2,3,4,5}; int[] new_arr = new int[10]; //将老数组中的值给新数组 for (int i = 0; i < ald_arr.length; i++) { new_arr[i] = ald_arr[i]; } //将新数组的地址值,给老数组 ald_arr = new_arr; for (int i = 0; i < ald_arr.length; i++) { System.out.println(ald_arr[i]); }

3、数组合并

int[] arr1 = {1, 2, 3, 4, 5}; int[] arr2 = {6, 7, 8, 9, 10}; //新数组:用于保存合并后的两个数组 int[] newArr = new int[arr1.length + arr2.length]; //将arr1的元素放入到数组中 for (int i = 0;i<arr1.length;i++){ newArr[i] = arr1[i]; } //arr2的数据添加到新数组中 for (int i = 0; i < arr2.length; i++) { newArr[arr1.length+i] = arr2[i]; //+i:是为了保证数组下标会发生变化,不会永远停留在 newArr[arr1.length] = 5 } for (int i = 0; i < newArr.length; i++) { System.out.print(newArr[i]+" "); } //1 2 3 4 5 6 7 8 9 10

五、二维数组

1、定义与格式

(1)概述:数组中套了多个数组。

(2)定义格式

a、动态初始化

数据类型[][] 数组名 = new 数据类型[m][n] m:代表二维数组长度 n:代表一维数组长度

b、静态初始化

数据类型[][] 数组名 = {{元素1,元素2,....},{元素1,元素2,....}}

2、获取二维数组的长度

数组名.length
int[][] arr = {{1,2,3,4},{5,6,7},{9}}; //获取数组长度 System.out.println(arr.length); //获取二维数组中,一维数组的长度 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i].length); }

3、获取二维数组的数据

数组名[i][j] i:二维数组的下标 j:二维数组中,一维数组的下标
int[][] arr = {{1,2,3,4},{5,6,7},{9}}; System.out.println(arr[1][2]); //7

4、二维数组赋值

//数组名[][] = 值 int[][] arr = new int[2][3]; arr[0][1] = 100;

5、二维数组的遍历

int[][] arr = new int[2][3]; arr[0][1] = 100; for (int i = 0; i < arr.length; i++) { //arr[i]:表示的是一维数组 for (int j = 0;j<arr[i].length;j++){ System.out.print(arr[i][j]); } } //010 //000
http://www.jsqmd.com/news/1181000/

相关文章:

  • TC78H653FTG+STM32F031C6驱动直流有刷电机方案详解
  • 2026 舟山靠谱装修公司推荐排行榜,本土正规家装企业全覆盖 - 装修新知
  • VSCode + CMake + MinGW 环境配置:3个常见报错与解决方案(附 `mingw32-make` 重命名)
  • Pyhon__学习笔记留痕__函数
  • 终极指南:LyricsX - macOS上最智能的歌词同步解决方案
  • 强力游戏控制器映射工具:零编程解决外设兼容难题
  • 【新能源汽车研发测试能力建设深度解析:设备、趋势与行业展望】
  • 长沙高端腕表回收实测对比,易奢福 2026 实时报价不压钱 - 肉松卷
  • Wand-Enhancer终极指南:如何通过开源补丁解锁WeMod高级功能
  • 2026年福州电梯厂家推荐测评:十大权威排行榜与优选推荐 - GrowthUME
  • 量子神经网络(QNN)原理与DREAMVFIA框架实践
  • 精工中国官方售后服务网络全攻略|维修地址及官方电话全新通告(2026年7月最新) - 亨得利腕表服务中心
  • 3种高效方案:完全掌握WeMod专业版功能的完整指南
  • Synology Video Info Plugin:群晖影视信息插件完整解决方案
  • prompt优化 || 为什么你的Prompt总翻车?因为模型不会读心术(内带优化关键点列表)
  • Kimi-K2.5-NVFP4量化原理白皮书:静态权重与动态激活的NVFP4混合策略
  • 本月金价高位,2026杭州黄金上门回收流程与估价标准详解 - 禹竞奢收行
  • OCAuxiliaryTools:黑苹果OpenCore配置的终极图形化管理工具
  • 2026化工行业劳保用品厂家榜:防护服、安全鞋、劳保靴优选供应商,临沂恒安劳保品类齐全实力出众 - 栗子测评
  • 广州积家 2026 年 7 月官方售后保养网点全梳理,迁址新店服务详情完整指南 - 积家中国服务中心
  • 慢一点也挺好:在快节奏时代找回生活的掌控感
  • 终极指南:GIMP Resynthesizer纹理合成插件完全实战手册
  • Botty暗黑2重制版自动化指南:从零开始配置你的智能刷图助手
  • 2026年安徽乡村自建房怎么选不踩雷?5家实测对比与大包建房避坑指南 - 中国品牌企业观察网
  • 终极指南:如何在Windows电脑上免费接收AirPlay投屏
  • 当AI学会“提取”你的思维:一个普通人与他的数字分身的三千夜话
  • 1987年6月25日中午11-13点出生性格、运势和命运
  • 新能源动力电池测试设备深度解析:充放电设备与电池模拟器的差异及技术趋势
  • 押金收据丢了怎么登报挂失?3分钟手机登报流程+标准模板分享! - 点办通
  • 亨得利中国区官方售后服务网点|官方售后电话及地址权威公告(2026年7月最新) - 亨得利中国服务中心