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

062_Arrays类与数组操作

一、Arrays类概述

java.util.Arrays是Java中专门用于数组操作的工具类,提供了一系列静态方法来简化数组的创建、填充、复制、比较、转换等操作。其核心作用包括:

  • 封装数组的常用操作,减少重复代码。
  • 提供高效的数组处理实现(部分方法采用系统级优化)。
  • 支持基本类型数组和对象数组的统一操作。

Arrays类的方法大多针对数组的共性需求设计,无需关注数组的具体类型(基本类型或引用类型),是数组操作的核心工具类。

二、数组的创建与填充

2.1 填充数组:fill()

fill()方法用于将数组的所有元素或指定范围的元素设置为同一个值,适用于数组初始化。

2.1.1 填充全部元素

// 语法:填充整个数组为指定值
static void fill(类型[] array, 类型 value)// 示例:填充int数组
int[] nums = new int[5];
Arrays.fill(nums, 10); // 数组变为 [10, 10, 10, 10, 10]// 示例:填充String数组
String[] strs = new String[3];
Arrays.fill(strs, "default"); // 数组变为 ["default", "default", "default"]

2.1.2 填充指定范围元素

// 语法:填充数组[fromIndex, toIndex)范围为指定值(左闭右开)
static void fill(类型[] array, int fromIndex, int toIndex, 类型 value)// 示例:填充部分范围
int[] nums = new int[5];
Arrays.fill(nums, 1, 4, 20); // 填充索引1-3(不含4),数组变为 [0, 20, 20, 20, 0]

注意:fromIndex和toIndex需满足0 ≤ fromIndex ≤ toIndex ≤ array.length,否则抛出IndexOutOfBoundsException。

2.2 生成数组:setAll()与parallelSetAll()

这两个方法通过生成器函数(根据索引计算元素值)填充数组,适用于动态生成数组元素。

  • setAll():单线程填充数组。
  • parallelSetAll():多线程并行填充数组(适合大数据量数组)。
// 语法
static void setAll(类型[] array, IntUnaryOperator generator)
static void parallelSetAll(类型[] array, IntUnaryOperator generator)// 示例:生成1-10的平方数数组
int[] squares = new int[10];
Arrays.setAll(squares, i -> (i + 1) * (i + 1)); 
// 数组变为 [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]// 示例:并行生成大数据量数组
long[] bigArray = 
http://www.dtcms.com/a/301612.html

相关文章:

  • 在飞牛OS上部署MoonTV:一站式影视聚合播放器安装教程
  • [spring6: @EnableWebMvc]-源码分析
  • MySQL 事务和锁
  • Webpack 和 Vite 的关键区别
  • 在Luckfox Lyra(Zero W)上将TF卡格式化为ext4文件系统
  • 人工智能——图像梯度处理、边缘检测、绘制图像轮廓、凸包特征检测
  • 递归查询美国加速-技术演进与行业应用深度解析
  • 2025 环法对决,VELO Angel Glide 坐垫轻装上阵
  • 【AI论文】GR-3技术报告
  • 《频率之光:危机降临》
  • 详细解释一个ros的CMakeLists.txt文件
  • tpms传感器的设计---硬件电路
  • python中的容器和对象
  • 深入理解SmolVLA中的Flow Matching Action Expert:从理论到实现
  • 从0到1学Pandas(九):Pandas 高级数据结构与操作
  • Adobe Animate中文版 v2024.24.0.10.14
  • 洛谷 装箱问题 动态规划-变形背包问题
  • OpenCL study - code03 rgb2gray
  • 进度条制作--Linux知识的小应用
  • 电商平台中,订单未支付过期,如何实现自动关单?
  • 字节前端面试知识点总结
  • 使用GIS中基于森林的分类与回归模型来估算房屋价值
  • c++17--std::variant
  • 决策树算法小结(上)
  • cmake入门学习
  • HCIE学习之路:路由引入
  • 嵌入式硬件篇---ESP32拓展板
  • C语言中 %zu 的用法
  • Javascript中的instanceof
  • VMware Workstation Pro虚拟机的下载和安装图文保姆级教程(附下载链接)