Java数组(Array)最全汇总(下篇)

 更新时间:2023年01月13日 17:07:17   作者:小熊coder  
这篇文章主要介绍了Java数组(Array)最全汇总(下篇),本文章内容详细,通过案例可以更好的理解数组的相关知识,本模块分为了三部分,本次为下篇,需要的朋友可以参考下

前言

本章是关于Java数组的最全汇总,本篇为汇总下篇,主要对上两篇内容进行总结汇总。

数组是最常见的一种数据结构,它是相同类型的用一个标识符封装到一起的基本类型数据序列或者对象序列。

数组使用一个统一的数组名和不同的下标来唯一确定数组中的元素。

实质上,数组是一个简单的线性序列,因此访问速度很快。

本章将详细介绍 Java 中数组的创建、初始化和处理方法,如获取数组长度、查找数组元素和数组排序等。

本章学习要点

  1. 掌握一维数组的创建方法
  2. 掌握一维数组的初始化方法
  3. 熟练掌握一维数组的应用
  4. 掌握二维数组的创建
  5. 掌握二维数组的初始化
  6. 熟练掌握二维数组元素的访问方式
  7. 掌握数组的复制方法
  8. 掌握搜索数组元素的方法
  9. 掌握对数组的排序算法

对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 种常见排序方法,分别是:

  1. Arrays.sort()
  2. 冒泡排序
  3. 快速排序
  4. 选择排序
  5. 直接插入

常见问题解答

1. 声明数组需要注意什么?

声明数组时,一定要考虑数组的最大容量,防止容量不够的现象。

数组一旦被声明,它的容量就固定了,不容改变。

如果想在运行程序时改变容量,就需要用到集合。

2. 数组在平时的程序代码中使用是否频繁?

数组有一个缺点,就是一旦声明,就不能改变容量,这个也是其使用频率不高的原因。一般存储数据会使用集合或 Vector 来存储数据。

到此这篇关于Java数组(Array)最全汇总(下篇)的文章就介绍到这了,其他两个部分的内容(上、中篇)请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 关于快速测试API接口的一个新技能

    关于快速测试API接口的一个新技能

    这篇文章主要给大家介绍了关于快速测试API接口的一个新技能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • 一篇文章带你入门Java接口

    一篇文章带你入门Java接口

    这篇文章主要介绍了JAVA中接口的定义和接口的实现,文中讲解非常细致,配合代码更好的帮大家学习参考,感兴趣的朋友可以了解下
    2021-08-08
  • java中多线程加锁的四种方式

    java中多线程加锁的四种方式

    Java中实现多线程安全的关键是加锁,主要方式有synchronized关键字、ReentrantLock类、ReadWriteLock接口和Semaphore类,本文就来介绍一下这四种方式,感兴趣的可以了解一下
    2024-10-10
  • JAVA 笔记 ClassLoader.getResourceAsStream() 与 Class.getResourceAsStream()的区别

    JAVA 笔记 ClassLoader.getResourceAsStream() 与 Class.getResourc

    这篇文章主要介绍了JAVA 笔记 ClassLoader.getResourceAsStream() 与 Class.getResourceAsStream()的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • mybatis的动态SQL和模糊查询实例详解

    mybatis的动态SQL和模糊查询实例详解

    这篇文章主要给大家介绍了关于mybatis的动态SQL和模糊查询的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • SpringCloud全局过虑器GlobalFilter的用法小结

    SpringCloud全局过虑器GlobalFilter的用法小结

    这篇文章主要介绍了SpringCloud全局过虑器GlobalFilter的使用,全局过虑器使用非常广泛,比如验证是否登录,全局性的处理,黑名单或白名单的校验等,本文结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • Java如何实现Unicode和中文相互转换

    Java如何实现Unicode和中文相互转换

    这篇文章主要介绍了Java如何实现Unicode和中文相互转换问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 带你轻松搞定Java面向对象的编程--数组,集合框架

    带你轻松搞定Java面向对象的编程--数组,集合框架

    Java是面向对象的高级编程语言,类和对象是 Java程序的构成核心。围绕着Java类和Java对象,有三大基本特性:封装是Java 类的编写规范、继承是类与类之间联系的一种形式、而多态为系统组件或模块之间解耦提供了解决方案
    2021-06-06
  • SpringMVC通过RESTful结构实现页面数据交互

    SpringMVC通过RESTful结构实现页面数据交互

    RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源
    2022-08-08
  • 如何在Spring Boot项目中使用Spring AI

    如何在Spring Boot项目中使用Spring AI

    Spring AI是Spring框架中用于集成和使用人工智能和机器学习功能的组件,它提供了一种简化的方式来与AI模型进行交互,这篇文章主要介绍了Spring Boot 在项目中使用Spring AI,需要的朋友可以参考下
    2024-05-05

最新评论