Java培训老师分享数组知识梳理
作者:黄君发布时间:2021-07-02分类:惠州计算机学校浏览:865
Java是一门面向对象编程语言,具有简单易用、功能强大的特征。数组是同类型数据的有序集合,在Java中是引用数据类型,引用数据类型值都存储在堆中。有很多新手初学Java数组觉得难度大,接下来就给大家简单梳理一下数组相关的知识点。
一、数组的定义及初始化
1、定义一个数组的格式为:数据类型[] 数组名称;数据类型代表数组中保存的数据全都是统一的哪种类型。通过数组名称可以使用其中的多个数据。
2、数组一定要初始化之后才可以使用。初始化是指:为数组在内存当中开辟内存空间,用来保存数据,并且设置默认值。没有初始化的数组无法使用。数组的初始化方式分成两种:
1)动态初始化,指定长度。格式为:
数据类型[] 数组名称 = new 数据类型[长度];
数据类型[] 数组名称;
数组 = new 数据类型[长度];
数组元素的默认值规则为:整数默认为0,浮点数默认为0.0,字符默认为’\u0000’,布尔值默认为false,字符串等引用类型默认为null。
2) 静态初始化,指定内容。除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。
int[] a = { 1, 2, 3};// 静态初始化基本类型数组
Man[] mans = { newMan(1, 1), newMan(2, 2) };// 静态初始化引用类型数组
二、访问数组元素
直接打印数组的名称,得到的是“内存地址值”(的哈希值)。要想访问数组中的元素,需要使用格式:数组名称[索引编号]
其中索引编号是数组中元素的int型数字编号,从0开始,一直到数组的长度-1为止。
三、获取数组长度
无论是动态还是静态初始化,数组一定是具有长度的。获取长度的格式:数组名称.length
这将得到一个int数字代表长度,注意,数组在内存当中一旦被创建,那么长度不可改变。
四、数组索引越界异常
如果访问的数组元素索引并不存在,那么将会发生异常:java.lang.ArrayIndexOutOfBoundsException。
注意,数组元素索引编号从0开始,一直到“数组长度-1”为止。
五、数组遍历
public static void main(String[] args) {
int[] arr = new int[3]
;for (int i = 0; i < arr.length; i++) {arr[i] = i + 1;
}
System.out.println(Arrays.toString(arr)); // 输出 [1, 2, 3]
}
如果不需要使用数组小标的化可以使用简化语法:for each,格式为:
for (type item : arrName) {... // 操作}
如:
public static void main(String[] args) {
String[] arr = new String[]{
"hello", "world", "!!"
};for (String v : arr) {
System.out.println(v); // 循环输出arr中的字符串
}
}
六、数组复制
1) System.arraycopy() 系统提供的方法:
/*** @param src 原数组* @param srcPos 拷贝原数组起始位置* @param dest 目标数组* @param destPos 目标数组起始位置* @param length 拷贝数组元素个数*/public static void native arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
2) clone对象克隆:
int[] src = {1, 2, 3};int[] dest = src.clone();
3) Arrays.copyOf、Arrays.copyOfRange 方法
int[] src = {1, 2, 3};
int[] dest1 = Arrays.copyOf(src, 3);
int[] dest2 = Arrays.copyOfRange(src, 1, 3);
System.out.println(Arrays.toString(dest1)); // 输出:[1, 2, 3]
System.out.println(Arrays.toString(dest2)); // 输出:[2, 3]
4) for 循环,挨个元素复制
int[] src = new int[]{1, 2, 3};
int[] dest = new int[3];
for (int i = 0;
i < src.length; i++) {
dest[i] = src[i];
}
System.out.println(Arrays.toString(dest)); // 输出:[1, 2, 3]
七、数组排序
static void sort(int[] a) // 对整型数组比较后按升序排序
static void sort(int[] a, int fromIndex, int toIndex) // 对整型数组比较指定范围数据按升序排序
public static<T> void sort(T[] a,Comparator c) // 根据指定比较器产生的顺序对指定对象数组进行排序
public static<T> void sort(T[] a,int fromIndex,int toIndex,Comparator c) // 根据指定比较器产生的顺序对指定对象数组的指定范围进行排序
八、数组查找/搜索
Arrays.binarySearch(Object[] arr, Object key)
arr:要搜索的数组,搜索前必须对数组先进行sort排序
key:要搜索的值返回值:如果key在arr中,则返回搜索值得索引,否则返回-1或-[插入点索引值]
插入点索引值:
1)key不在arr中,且在数组值范围内,从1开始计数,索引值为-[插入点索引值];
2)key不在arr中,且大于数组内元素,索引值为-[arr.length + 1];
3)key不在arr中,且小于数组内元素,索引值为-1。
Arrays.binarySearch(Object[] arr, int fromIndex, int toIndex, Object key)
arr:要搜索的数组,搜索前必须对数组先进行sort排序
fromIndex:查找起始位置
toIndex:查找结束位置
key:要搜索的值
返回值:如果key在arr查找范围中,则返回搜索值得索引,否则返回-1或-[插入点索引值]
插入点索引值:
1)key不在arr中,且在数组值范围内,从1开始计数,索引值为-[插入点索引值];
2)key不在arr中,且大于范围数组内元素,索引值为-[toIndex + 1];
3)key不在arr中,且小于范围数组内元素,索引值为-[fromIndex + 1]。
点击咨询直接了解更多相关资料,我在惠州北大青鸟新方舟等你。
本文内容转载自网络,版权归原作者所有,如有侵权请联系我们进行删除。
标签:惠州计算机软件培训惠州计算件软件开发惠州计算机软件基础惠州计算机JAVA软件开发惠州Java培训学校惠州Java培训JAVA语言Java是什么Java开发JAVA入门
- 惠州计算机学校排行
- 标签列表
-
- Java (3694)
- 北大青鸟 (3713)
- 软件开发 (3613)
- JAVA (3413)
- UI设计入门 (2093)
- 惠州北大青鸟 (4375)
- 惠州IT培训 (2558)
- UI设计培训 (2090)
- 惠州UI设计培训 (2095)
- 惠州UI设计培训学校 (2090)
- 惠州计算机软件培训 (6260)
- 惠州计算件软件开发 (6260)
- 惠州计算机软件基础 (6261)
- 惠州计算机JAVA培训 (3574)
- 惠州计算机Java软件开发 (3620)
- 惠州计算机JAVA软件开发 (4645)
- 惠州计算机JAVA软件开发学校 (3338)
- 惠州计算机Java软件开发培训 (3338)
- 北大青鸟IT计算机学校 (5048)
- 北大青鸟IT软件学校 (5062)
- 北大青鸟IT学校 (5059)
- 惠州计算机UI设计软件开发 (2088)
- UI设计基础教程 (2088)
- UI设计是什么 (2088)
- UI设计教程 (2088)
- 网站分类
-
- 计算机教程
- 计算机入门
- 职业学校
- 新闻动态
- 专业课程
- 热门技术
- SEO
- 培训教程
- windows
- linux教程
- 系统集成
- 网站开发
- Html5
- 办公软件
- 师资力量
- 热点问答
- 联系我们
- 计算机学校
- 惠州计算机学校
- 河源计算机学校
- 广州计算机学校
- 深圳计算机学校
- 湛江计算机学校
- 佛山计算机学校
- IT计算机培训信息
- 设计专业
- UI
- 影视特效
- 游戏动漫设计
- Photoshop
- AI设计
- 软件教程
- Java技术
- C语言/C++语言培训
- C#
- Python技术
- PHP
- 数据库
- SQL Server
- 网络教程
- 网络安全
- 网络营销
- 软件专业
- 大数据专业
- 前端开发专业
- 软件测试专业
- Python专业
- 软件实施
- 珠海计算机学校
- 初中生学什么好
- 计算机认证
- 文章归档
-
- 2024年11月 (14)
- 2024年10月 (32)
- 2024年9月 (29)
- 2024年8月 (68)
- 2024年7月 (59)
- 2024年6月 (43)
- 2024年5月 (48)
- 2024年4月 (80)
- 2024年3月 (65)
- 2024年2月 (54)
- 2024年1月 (25)
- 2023年12月 (12)
- 2023年11月 (73)
- 2023年10月 (134)
- 2023年9月 (34)
- 2023年8月 (3)
- 2023年7月 (3)
- 2023年6月 (12)
- 2023年5月 (30)
- 2023年4月 (72)
- 2023年3月 (11)
- 2023年2月 (34)
- 2023年1月 (37)
- 2022年12月 (78)
- 2022年11月 (359)
- 2022年6月 (1193)
- 2022年5月 (570)
- 2022年4月 (1567)
- 2022年3月 (982)
- 2022年2月 (54)
- 2022年1月 (182)
- 2021年9月 (308)
- 2021年8月 (1704)
- 2021年7月 (2423)
- 2021年6月 (1806)
- 2021年5月 (1569)
- 2021年4月 (1380)
- 2021年3月 (1255)
- 2021年2月 (709)
- 2021年1月 (1521)
- 2020年12月 (3626)
- 2020年11月 (1646)
- 2020年10月 (1046)
- 2020年9月 (592)
- 最近发表
-
- 清远信息:2024年广清杯清远南粤家政技能大赛举行决赛|||计算机培训机构
- 汕尾信息:陈良川带队到汕尾技师学院调研|||计算机职业技能培训班
- 东莞信息:凤岗凤岗镇组织召开社保参保缴费及劳动用工政策宣讲会|||计算机软件培训学校
- 阳江信息:2024年度注册城乡规划师职业资格考试的合格标准是怎样的?|||计算机软件培训学校
- 阳江信息:职业技能提升补贴对象有哪些?|||大学生计算机培训学校
- 清远信息:清远市首家社保服务合作网点在清城区举办启动仪式|||计算机职业技能培训班
- 汕头信息:招聘658名中高端人才!2024年汕头市引进中高端人才专场招聘会举行|||北大青鸟计算机培训中心
- 东莞信息:广东省社保智能经办现场会在东莞召开|||大学生计算机培训学校
- 东莞信息:东坑镇举办2024年重点群体系列招聘活动|||计算机职业技能培训班
- 东莞信息:万江万江街道成功举办第四届粤菜师傅烹饪技能竞赛|||广州计算机编程培训