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

Java 每日一刊(第9期):数组

文章目录

    • 前言
    • 什么是数组
    • 初始化数组
    • 如何访问和操作数组
    • 遍历数组
    • 多维数组
    • 数组的常见操作
      • 复制数组
      • 排序数组
      • 搜索数组
    • 数组的长度和异常处理
    • `Arrays` 工具类
    • 本期小知识

“简单是效率的灵魂。”

前言

这里是分享 Java 相关内容的专刊,每日一更。

本期将为大家带来以下内容:

  1. 什么是数组
  2. 初始化数组
  3. 如何访问和操作数组
  4. 遍历数组
  5. 多维数组
  6. 数组的常见操作
  7. 数组的长度和异常处理
  8. Arrays 工具类

什么是数组

数组,简单来说,就是一个能存放多个 相同类型数据 的“容器”。不论是数字、字符、还是对象,只要是同一类型的数据,数组都能把它们整齐地存放在一起。每个数据都有一个位置编号(索引),这样我们就可以快速找到它们。例如:

int[] numbers = new int[5];  // 创建一个可以存放5个整数的数组

这段代码就像是在告诉 Java:“请给我一个带有 5 个格子的柜子,这里面我要放整数。”

初始化数组

在 Java 中,数组的初始化有两种主要方式:

静态初始化:你直接把数据塞进去。

int[] numbers = {1, 2, 3, 4, 5};  // 创建并初始化数组

动态初始化:你先把柜子建好,再慢慢往里放东西。

int[] numbers = new int[5];  // 创建一个空的数组
numbers[0] = 1;  // 把第一个格子填上数字1

如何访问和操作数组

就像在柜子里找东西一样,你可以通过索引来获取或修改数组中的某个元素。索引从 0 开始,这点很重要!

获取数组元素:

int firstNumber = numbers[0];  // 获取第一个格子的内容

修改数组元素:

numbers[2] = 10;  // 把第三个格子的内容改成10

遍历数组

想一次性看看所有的东西?可以用循环来“逛”数组。

使用 for 循环:

for (int i = 0; i < numbers.length; i++) {System.out.println(numbers[i]);  // 打印每个格子的内容
}

使用 foreach 循环:

for (int number : numbers) {System.out.println(number);  // 依次打印每个格子的内容
}

多维数组

有时候,一个柜子不够用,我们需要多个柜子来存储更复杂的数据。这时候,多维数组就派上用场了。最常见的是二维数组,它就像是一个装满格子的表格。

创建二维数组:

int[][] matrix = new int[3][3];  // 创建一个3x3的矩阵

访问二维数组:

matrix[0][1] = 5;  // 把第一行第二列的值设为5

想象一下你有一个 3x3 的表格,每个格子都可以放一个数字。这个“表格”就是二维数组。

数组的常见操作

数组不仅能存储数据,还能进行一些常见操作。

复制数组

你可以使用 System.arraycopy()Arrays.copyOf() 来复制数组。

int[] newArray = Arrays.copyOf(numbers, numbers.length);

排序数组

想把数组的内容按顺序排好?Arrays.sort() 可以帮你。

Arrays.sort(numbers);  // 把数组中的数字从小到大排列

搜索数组

找某个数字的位置?Arrays.binarySearch() 是个好工具,但前提是数组得是排好序的。

int index = Arrays.binarySearch(numbers, 3);  // 查找数字3的索引

数组的长度和异常处理

每个数组都有一个固定的长度,也就是它有多少个格子,这个长度是通过 length 属性获取的。

int len = numbers.length;  // 获取数组的长度

但你得小心访问数组时的索引,超出了数组的大小,就会抛出 ArrayIndexOutOfBoundsException 错误。这就像你试图打开一个不存在的柜子,会被告知“没有这个柜子!”

Arrays 工具类

Java 提供了一个非常实用的工具类 java.util.Arrays,它可以帮我们轻松地处理数组。

Arrays.toString():将数组转换成一个字符串,方便我们查看。

System.out.println(Arrays.toString(numbers));  // 输出:[1, 2, 3, 4, 5]

Arrays.equals():用来比较两个数组是否相等。

Arrays.fill():可以将数组中的所有元素设置成相同的值。

Arrays.fill(numbers, 0);  // 把所有格子的值都设为0

本期小知识

在 Java 中,数组是对象,不论它存储的是基本数据类型还是引用类型。因此,数组具有所有对象的特性,包括默认继承自 Object 类的方法。

这意味着数组可以调用 Object 类的方法,如 toString()hashCode(),但由于 toString() 没有被数组重写,它返回的结果是数组对象的内存地址,这就是为什么通常使用 Arrays.toString() 来打印数组内容的原因。


http://www.mrgr.cn/news/28503.html

相关文章:

  • World of Warcraft [WeakAuras]Barney Raid Kit - Collapsing Star Indicator
  • Javascript高级—搜索算法
  • Nginx中使用keepalive实现保持上游长连接实现提高吞吐量示例与测试
  • Cellebrite VS IOS18Rebooting
  • 吴恩达深度学习笔记(12)14
  • Python自动化运维DevSecOps与安全自动化
  • 淘客返利系统的异步任务处理与调度
  • 【C++】基础知识 笔记
  • WPF入门教学四 WPF控件概述
  • C语言-结构体-详解
  • Linux操作系统文件权限管理
  • 【C++前后缀分解 动态规划】2100. 适合野炊的日子|1702
  • protobuf.js源码简介
  • NISP 一级 | 6.1 移动智能终端
  • C#数据结构与算法实战入门指南
  • 滑坡落石检测数据集
  • comfyui中报错 Cmd(‘git‘) failed due to: exit code(128) 如何解决
  • JSON处理工具类
  • 如何设置xshell关闭最后一个选项卡标签时不退出软件?
  • 读构建可扩展分布式系统:方法与实践06异步消息传递
  • python多进程程序设计 之四
  • protobuf.js:Message类功能详解与实战应用
  • n位格雷码
  • C语言 | Leetcode C语言题解之第412题Fizz Buzz
  • ls -l是什么命令全称?
  • 高德地图2.0 绘制、编辑多边形覆盖物(电子围栏)