Java数组(Array)最全汇总(下篇)
前言
本章是关于Java数组的最全汇总,本篇为汇总下篇,主要对上两篇内容进行总结汇总。
数组是最常见的一种数据结构,它是相同类型的用一个标识符封装到一起的基本类型数据序列或者对象序列。
数组使用一个统一的数组名和不同的下标来唯一确定数组中的元素。
实质上,数组是一个简单的线性序列,因此访问速度很快。
本章将详细介绍 Java 中数组的创建、初始化和处理方法,如获取数组长度、查找数组元素和数组排序等。
本章学习要点
- 掌握一维数组的创建方法
- 掌握一维数组的初始化方法
- 熟练掌握一维数组的应用
- 掌握二维数组的创建
- 掌握二维数组的初始化
- 熟练掌握二维数组元素的访问方式
- 掌握数组的复制方法
- 掌握搜索数组元素的方法
- 掌握对数组的排序算法
对Java数组的总结
数组(Array)是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来唯一确定数组中的元素。
根据数组的维度,可以将其分为一维数组、二维数组和多维数组等。
一维数组
数组中每个元素都只带有一个下标,是数组中最简单的一种数组。
声明
声明一维数组语法有两种格式(推荐使用第一种)。
type[] arrayName; // 数据类型[] 数组名;
或者
type arrayName[]; // 数据类型 数组名[];
分配空间
分配空间语法格式如下。
arrayName = new type[size]; // 数组名 = new 数据类型[数组长度];
初始化
Java 中初始化数组有以下 3 种方式。
- 使用 new 指定数组大小后进行初始化
- 使用 new 指定数组元素的值
- 直接指定数组元素的值
// 使用 new 指定数组大小后进行初始化 int[] number = new int[5]; number[0] = 1; number[1] = 2; number[2] = 3; number[3] = 5; number[4] = 8; // 使用 new 指定数组元素的值(2种方式) int[] number = new int[] { 1, 2, 3, 5, 8 }; int[] number = new int[5] { 1, 2, 3, 5, 8 }; // 直接指定数组元素的值(2种方式) int[] number = { 1, 2, 3, 5, 8 }; int[] number; number={1,2,3,5,8};
使用
- 获取单个元素
- 获取全部元素
// 获取单个元素 int[] number = { 1, 2, 3, 5, 8 }; System.out.println("获取第一个元素:" + number[0]); // 使用for语句获取全部元素 int[] number = { 1, 2, 3, 5, 8 }; for (int i = 0; i < number.length; i++) { System.out.println("第" + (i + 1) + "个元素的值是:" + number[i]); } // 使用foreach语句获取全部元素 for (int val : number) { System.out.print("元素的值依次是:" + val + "\t"); }
二维数组
二维数组被看作数组的数组。
声明
声明二维数组语法有两种格式(推荐使用第一种)。
type[][] arrayName; // 数据类型[][] 数组名;
或者
type arrayName[][]; // 数据类型 数组名[][];
第一个中括号表示行,第二个中括号表示列。
初始化
二维数组可以通过以下 3 种方式来指定元素的初始值。
type[][] arrayName = new type[][]{值 1,值 2,值 3,…,值 n}; // 在定义时初始化
type[][] arrayName = new type[size1][size2]; // 给定空间,在赋值
type[][] arrayName = new type[size][]; // 数组第二维长度为空,可变化
// 定义时初始化 int[][] temp = new int[][]{{1,2},{3,4}}; // 给定空间在赋值 int[][] temp = new int[2][2]; // 数组第二维长度为空,可变化 int[][] temp = new int[2][];
使用
- 获取单个元素:
arrayName[i-1][j-1];
arrayName 表示数组名称,i 表示数组的行数,j 表示数组的列数。
- 获取全部元素:使用嵌套 for 循环或 for each 循环语句。
- 获取整行元素:需要将行数固定,然后只遍历该行中的全部列即可。
- 获取整列元素:获取指定列的元素与获取指定行的元素相似,保持列不变,遍历每一行的该列即可。
数组操作
比较数组
比较数组元素的个数和对应位置的元素是否相等。
Arrays.equals(arrayA, arrayB);
arrayA 是用于比较的第一个数组,arrayB 是用于比较的第二个数组。
填充数组
在指定位置进行数值填充。
Arrays.fill(array,value);
array 表示数组,value 表示填充的值。只能使用同一个数值进行填充。
数组查找
从数组中查询指定位置的元素,或者查询某元素在指定数组中的位置,语法格式如下。
binarySearch(Object[] a,Object key);
a 表示要搜索的数组,key 表示要搜索的值。
在数组中指定范围内查找,语法格式如下。
binarySearch(Object[] a,int fromIndex,int toIndex,Object key);
a 表示要进行查找的数组,fromIndex 指定范围的开始处索引(包含开始处),toIndex 指定范围的结束处索引(不包含结束处),key 表示要搜索的元素。
复制数组
copyOf()
Arrays.copyOf(dataType[] srcArray,int length);
srcArray 表示要进行复制的数组,length 表示复制后的新数组的长度
CopyOfRange()
Arrays.copyOfRange(dataType[] srcArray,int startIndex,int endIndex)
srcArray 表示原数组,startIndex 表示开始复制的起始索引,endIndex 表示终止索引。
arraycopy()
System.arraycopy(dataType[] srcArray,int srcIndex,int destArray,int destIndex,int length)
srcArray 表示原数组,srcIndex 表示源数组中的起始索引,destArray 表示目标数组,destIndex 表示目标数组中的起始索引,length 表示要复制的数组长度。
clone()
array_name.clone()
数组排序
Java 数组中有 5 种常见排序方法,分别是:
- Arrays.sort()
- 冒泡排序
- 快速排序
- 选择排序
- 直接插入
常见问题解答
1. 声明数组需要注意什么?
声明数组时,一定要考虑数组的最大容量,防止容量不够的现象。
数组一旦被声明,它的容量就固定了,不容改变。
如果想在运行程序时改变容量,就需要用到集合。
2. 数组在平时的程序代码中使用是否频繁?
数组有一个缺点,就是一旦声明,就不能改变容量,这个也是其使用频率不高的原因。一般存储数据会使用集合或 Vector 来存储数据。
到此这篇关于Java数组(Array)最全汇总(下篇)的文章就介绍到这了,其他两个部分的内容(上、中篇)请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
- Java数组(Array)最全汇总(中篇)
- Java数组(Array)最全汇总(上篇)
- Java之数组在指定位置插入元素实现
- Java自定义一个变长数组的思路与代码
- Java中如何将 int[] 数组转换为 ArrayList(list)
- Java中将 int[] 数组 转换为 List分享
- java如何将int数组转化为Integer数组
- 浅谈Java当作数组的几个应用场景
- 计算Java数组长度函数的方法以及代码分析
- Java C++题解leetcode915分割数组示例
- Java 从json提取数组并转换为list的操作方法
- Java数据结构之稀疏数组的实现与应用
- Java C++题解leetcode1441用栈操作构建数组示例
- Java postgresql数组字段类型处理方法详解
- Java中数组的常见操作合集
相关文章
IDEA插件EasyCode及MyBatis最优配置步骤详解
这篇文章主要介绍了IDEA插件EasyCode MyBatis最优配置步骤详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-12-12ArrayList与linkedList的用法区别及扩容方式
这篇文章主要介绍了ArrayList与linkedList的用法区别及扩容方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-03-03
最新评论