Java基础系列(4)- 数组
1|0数组的概述
- 数组(Array),是多个
相同类型数据
按一定顺序排列
的集合,并使用一个名字命名
,并通过编号
的方式对这些数据进行统一管理。 - 数组的常见概念
-
数组名
-
下标(或索引)
-
元素
-
数组的长度
- 数组本身是
引用数据类型
,而数组中的元素可以是任何数据类型
,包括基本数据类型和引用数据类型。 - 创建数组对象会在内存中开辟一整块
连续的空间
,而数组名中引用的是这块连续空间的首地址。 - 数组的
长度一旦确定,就不能修改。
- 我们可以直接通过下标(或索引)的方式调用指定位置的元素,速度很快.
数组的分类:
-
按照维度:一维数组、二维数组、三维数组、…
-
按照元素的数据类型分:基本数据类型元素的数组、引用数据类型元素的数组(即对象数组)
2|0一维数组的使用
2|1声明
一维数组的声明方式:type var[]
或 type[] var
例如:
2|2初始化
动态初始化:
数组声明且为数组元素分配空间与赋值的操作分开进行
静态初始化:
在定义数组的同时就为数组元素分配空间并赋值。
2|3数组元素的引用
-
定义并用运算符
new
为之分配空间后,才可以引用数组中的每个元素; -
数组元素的引用方式:数组名[数组元素下标] :
- 数组元素下标可以是整型常量或整型表达式。如a[3] , b[i] , c[6*i];
数组元素下标从0开始;
长度为n的数组合法下标取值范围: 0 -> n-1;如int a[]=new int[3]; 可引用的数组元素为a[0]、a[1]、a[2]
-
每个数组都有一个属性
length
指明它的长度,例如:a.length
指明数组a
的长度(元素个数)- 数组一旦初始化,其长度是不可变的
2|4数组元素的默认初始化值
数组元素类型 | 元素默认初始值 |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0F |
double | 0.0 |
char | 0或写为:'\u0000'(表现为空) |
boolean | false |
引用类型 | null |
2|5数组的内存解析
案例一
升景坊单间短期出租4个月,550元/月(水电煤公摊,网费35元/月),空调、卫生间、厨房齐全。
屋内均是IT行业人士,喜欢安静。所以要求来租者最好是同行或者刚毕业的年轻人,爱干净、安静
案例二
从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
成绩>=最高分-10 等级为’A’
成绩>=最高分-20 等级为’B’
成绩>=最高分-30 等级为’C
其余 等级为’D’
提示:先读入学生人数,根据人数创建int数组,存放学生成绩。
3|0多维数组的使用
3|1动态初始化1:
int[][] arr = new int[3][2];
-
定义了名称为arr的二维数组
-
二维数组中有3个一维数组
-
每一个一维数组中有2个元素
-
一维数组的名称分别为
arr[0], arr[1], arr[2]
-
给第一个一维数组1脚标位赋值为78写法是:
arr[0][1] =78;
3|2动态初始化2:
int[][] arr = new int[3][]
-
二维数组中有3个一维数组。
-
每个一维数组都是默认初始化值null (注意:区别于格式1)
-
可以对这个三个一维数组分别进行初始化
注:
int[][]arr = new int[][3]; //非法
3|3静态初始化:
int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}};
-
定义一个名称为arr的二维数组,二维数组中有三个一维数组
-
每一个一维数组中具体元素也都已初始化
-
第一个一维数组 arr[0] = {3,8,2};
-
第二个一维数组 arr[1] = {2,7};
-
第三个一维数组 arr[2] = {9,0,1,6};
-
第三个一维数组的长度表示方式:arr[2].length;
注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。
Java中多维数组不必都是规则矩阵形式
3|4数组的简写
练习
3|5数组元素的默认初始化值
3|6二维数组的内存解析
杨辉三角
4|0Arrays 工具类的使用
在 Java 编程语言中,java.util.Arrays 类是一个包含用于操作数组(例如排序和搜索)的各种方法的工具类。这个类作为 Java 核心库的一部分,提供了一系列静态方法来处理数组,包括原始数据类型数组和对象数组。
Arrays 类的常用方法
Arrays 类提供了多种方法来执行数组操作,这些操作包括但不限于:
排序:Arrays.sort() 方法可以对数组进行排序。它有多个重载版本,可以对不同类型的数组进行排序,包括整数、字符串和自定义对象,只要这些对象实现了 Comparable 接口或者提供了 Comparator。
搜索:Arrays.binarySearch() 方法用于在已排序的数组中搜索特定的元素,并返回其索引位置。如果元素未找到,则返回一个负数。
比较:Arrays.equals() 方法用于比较两个数组的内容是否相等。
复制:Arrays.copyOf() 和 Arrays.copyOfRange() 方法用于复制数组的一部分或全部内容到一个新的数组。
填充:Arrays.fill() 方法用于将指定的值分配给数组的每个元素。
转换:Arrays.toString() 和 Arrays.deepToString() 方法用于将数组转换为字符串表示,便于打印和调试。
使用 java.util.Arrays 类时,需要注意以下几点:
在使用 binarySearch() 方法之前,必须确保数组已经排序,否则结果是不确定的。
sort() 方法对于原始类型数组使用的是快速排序算法,对于对象数组使用的是归并排序算法。
equals() 方法在比较两个数组时,会考虑数组中元素的顺序。如果两个数组包含相同的元素但顺序不同,equals() 方法将返回 false。
copyOf() 和 copyOfRange() 方法在复制数组时,如果目标数组的长度大于源数组,多出的部分将被填充为默认值(例如,对于整数数组是 0)。
java.util.Arrays 类是 Java 开发者在处理数组时的重要工具,它简化了数组操作的复杂性,并提高了代码的可读性和效率。
__EOF__

本文链接:https://www.cnblogs.com/dongye95/p/14829737.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!