Java——Arrays常用方法

Arrays常用方法

Java 中的 Arrays 类提供了一系列静态方法,可以用来操作数组。

1. sort() 方法——默认升序排序

Arrays.sort() 方法用于对数组进行排序。该方法有多个重载版本,可以对不同类型的数组进行排序。

public static void sort(int[] arr)
public static void sort(int[] arr, int fromIndex, int toIndex)
public static void sort(Object[] arr)
public static void sort(Object[] arr, int fromIndex, int toIndex)

参数说明:

  • arr:要排序的数组。
  • fromIndex:排序的起始位置(包含)。
  • toIndex:排序的结束位置(不包含)

例如:

int[] arr = {5, 2, 1, 6, 3, 4};
Arrays.sort(arr); // 默认升序排序
System.out.println(Arrays.toString(arr)); // [1, 2, 3, 4, 5, 6]
=============================================================================
int[] arr = {5, 2, 1, 6, 3, 4};
Arrays.sort(arr, 1, 5);
System.out.println(Arrays.toString(arr)); // [5, 1, 2, 3, 6, 4]

2. binarySearch() 方法(二分查找)

Arrays.binarySearch() 方法用于在已排序的数组中查找指定元素。该方法有多个重载版本,可以对不同类型的数组进行查找。

public static int binarySearch(int[] arr, int key)
public static int binarySearch(int[] arr, int fromIndex, int toIndex, int key)
public static int binarySearch(Object[] arr, Object key)
public static int binarySearch(Object[] arr, int fromIndex, int toIndex, Object key)

参数说明:

  • arr:要查找的数组,必须已经排好序。
  • fromIndex:查找的起始位置(包含)。
  • toIndex:查找的结束位置(不包含)。
  • key:要查找的元素。

返回值:

  • 如果查找到了指定元素,则返回该元素在数组中的索引(从 0 开始)。
  • 如果未查找到指定元素,则返回一个负数,表示应该插入该元素的位置(以维持数组的有序性)。

例如:

int[] arr = {1, 2, 3, 4, 5, 6};
int index = Arrays.binarySearch(arr, 3);
System.out.println(index); // 2
==========================================================================
String[] arr = {"apple", "banana", "cherry", "date", "elderberry"};
int index = Arrays.binarySearch(arr, 1, 4, "cherry");
System.out.println(index); // 2

3. fill() 方法

Arrays.fill() 方法用于将数组的所有元素赋为指定的值。

public static void fill(int[] arr, int value)
public static void fill(int[] arr, int fromIndex, int toIndex, int value)
public static void fill(Object[] arr, Object value)
public static void fill(Object[] arr, int fromIndex, int toIndex, Object value)

参数说明:

  • arr:要填充的数组。
  • fromIndex:填充的起始位置(包含)。
  • toIndex:填充的结束位置(不包含)
  • value:要填充的值。

例如:

int[] arr = new int[5];
Arrays.fill(arr, 1);
System.out.println(Arrays.toString(arr)); // [1, 1, 1, 1, 1]
===========================================================================
char[] arr = new char[5];
Arrays.fill(arr, 1, 4, 'A');
System.out.println(Arrays.toString(arr)); // [0, A, A, A, 0]

4. copyOf() 方法

Arrays.copyOf() 方法用于复制数组的一部分。如果复制的长度比原数组长,则用默认值填充新的位置。

public static int[] copyOf(int[] original, int newLength)
public static <T> T[] copyOf(T[] original, int newLength)

参数说明:

  • original:要复制的数组。
  • newLength:复制的长度。

返回值:新的数组,内容为原数组的一部分。

例如:

int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOf(arr1, 3);
System.out.println(Arrays.toString(arr2)); // [1, 2, 3]
==========================================================================
String[] arr1 = {"apple", "banana", "cherry"};
String[] arr2 = Arrays.copyOf(arr1, 5);
System.out.println(Arrays.toString(arr2)); // [apple, banana, cherry, null, null]

5.copyOfRange() 方法

Arrays.copyOfRange() 方法是 Java 中的一个数组工具方法,用于复制指定范围内的数组元素并返回一个新的数组。下面是关于 Arrays.copyOfRange() 方法的详细解释:

  • 方法签名
public static <T> T[] copyOfRange(T[] original, int from, int to)

参数

  • original:要复制的原始数组
  • from:复制的起始位置(包括该位置的元素)
  • to:复制的结束位置**(不包括该位置的元素)**

返回值

  • 返回一个新的数组,包含原始数组中从 fromto-1 范围内的元素

注意事项

  • 如果 from 大于等于 to,则返回一个长度为 0 的新数组。
  • 如果 to 大于原始数组的长度,则将只复制从 from 到原始数组末尾的元素。

示例

import java.util.Arrays;public class Example {public static void main(String[] args) {Integer[] originalArray = {1, 2, 3, 4, 5};// 复制原始数组的第二个到第四个元素(不包括第四个元素)Integer[] newArray = Arrays.copyOfRange(originalArray, 1, 4);System.out.println("新数组元素:");for (Integer num : newArray) {System.out.println(num);}}
}

6. equals() 方法

Arrays.equals() 方法用于比较两个数组是否相等。

public static boolean equals(int[] a, int[] b)
public static boolean equals(Object[] a, Object[] b)

参数说明:

  • a、b:要比较的两个数组。

返回值:如果两个数组长度相等且对应位置的元素都相等,则返回 true,否则返回 false。

例如:

int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 2, 3};
System.out.println(Arrays.equals(arr1, arr2)); // true

7. toString() 方法

Arrays.toString() 方法用于将数组转换成字符串形式。

public static String toString(int[] arr)
public static String toString(Object[] arr)

参数说明:

  • arr:要转换的数组。

返回值:转换后的字符串,格式为 [element1, element2, …, elementN]。

例如:

int[] arr = {1, 2, 3};
System.out.println(Arrays.toString(arr)); // [1, 2, 3]

Arrays 类提供了很多便捷的方法,可以方便地操作数组,并且这些方法都是静态的,可以直接通过类名调用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/670427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法学习——LeetCode力扣哈希表篇2

算法学习——LeetCode力扣哈希表篇2 454. 四数相加 II 454. 四数相加 II - 力扣&#xff08;LeetCode&#xff09; 描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 …

Springboot启动出现Waiting for changelog lock...问题

今天在开发的时候&#xff0c;Springboot启动的时候出现Waiting for changelog lock…问题. 问题原因&#xff1a;该问题就是发生了数据库的死锁问题&#xff0c;可能是由于一个杀死的liquibase进程没有释放它对DATABASECHANGELOGLOCK表的锁定&#xff0c;导致服务启动失败&…

我的世界Java版服务器如何搭建并实现与好友远程联机Minecarft教程

文章目录 1. 安装JAVA2. MCSManager安装3.局域网访问MCSM4.创建我的世界服务器5.局域网联机测试6.安装cpolar内网穿透7. 配置公网访问地址8.远程联机测试9. 配置固定远程联机端口地址9.1 保留一个固定tcp地址9.2 配置固定公网TCP地址9.3 使用固定公网地址远程联机 本教程主要介…

项目中日志采集实践:技术、工具与最佳实践

目录 引言 一. 选择合适的日志框架 二. 配置日志框架 三. 使用适当的日志级别 1、日志级别概述 2、选择适当的日志级别 &#xff08;这里以logbkck为例&#xff09; 3、动态调整日志级别 四、 结合日志上下文信息 1. 使用 SLF4J MDC 2. 使用 Log4j 2 的 ThreadContext…

「深度学习」循环神经网络RNN

一、序列模型的例子 二、数学符号定义 X^{(i)<t>}&#xff1a;训练样本 i 的输入序列的第 t 个元素。 T_{X}^{i}&#xff1a;训练样本 i 的输入序列的长度。 Y^{(i)<t>}&#xff1a;训练样本 i 的输出序列的第 t 个元素。 T_{Y}^{i}&#xff1a;训练样本 i 的输…

Error: Unable to authenticate using the provided code. Please try again.

今天弄这个firebase cli的时候一直登陆不进去 都到了最后一步了&#xff0c;但是输入完code还是不成功 原来是因为开了梯子&#xff0c;代理不成功&#xff0c;要在 复制命令到对应的窗口粘贴就行&#xff0c;然后重复之前的命令就行 我复制出来的命令是 set http_proxyhttp…

leetcode-移动零

283. 移动零 题解&#xff1a; 使用双指针法&#xff08;快慢指针&#xff09;&#xff0c;快指针指向的数字不为0的时候&#xff0c;将这个数字移到慢指针的地方&#xff0c;最后在后面补0即可 class Solution:def moveZeroes(self, nums: List[int]) -> None:"&qu…

C++枚举算法(3)

我家的门牌号 题目描述&#xff1a; 我家住在一条短胡同里&#xff0c;这条胡同的门牌号从1开始顺序编号。 若所有的门牌号之和减去我家门牌号的两倍&#xff0c;恰好等于n&#xff0c;求 我家的门牌号及总共有多少家。 数据保证有唯一解。 输入 一个正整数n。n < 100000。…

如何创建一个微服务项目(maven聚合)

如何创建一个微服务项目 1.创建一个仓库&#xff08;推荐gitee&#xff09; 2.clone到本地 3.打开项目 4.创建module&#xff0c;将模块分别创建 5.复制其中一个pom.xml文件到总目录下 6.在总pom.xml文件中进行maven聚合 <?xml version"1.0" encoding&quo…

MySQL 表的设计

1.设计一个考勤系统 考勤系统&#xff0c;包含员工表&#xff0c;考勤记录表 create table emp(id int primary key,name varchar(20) );create table info(id int primary key,emp_id int,info_date timestamp,foreign key (emp_id) references emp(id) ); 设计一个学校宿舍…

Spring MVC跨域设置

简介 出于安全方面考虑&#xff0c;浏览器发起请求时&#xff0c;会先检查同源策略&#xff08;协议、主机、端口是否与当前页面相同&#xff09;&#xff0c;不匹配则认为是跨域请求。 CORS (Cross-Origin Resource Sharing) CORS是一种机制&#xff0c;允许服务器声明哪些…

解决hive表新增的字段查询为空null问题

Hive分区表新增字段&#xff0c;查询时数据为NULL的解决方案 由于业务拓展&#xff0c;需要往hive分区表新增新的字段&#xff0c;hive版本为2点多。 于是利用 alter table table_name add columns (col_name string )新增字段&#xff0c;然后向已存在分区中插入数据&#x…

代码解析:list.stream().filter(Objects::nonNull).collect(Collectors.toList())

这段Java代码是使用了Java 8引入的流(Stream) API来处理集合&#xff08;比如List&#xff09;。这个特定的例子展示了如何从一个列表中过滤掉所有的null值&#xff0c;并返回一个新的列表&#xff0c;其中不包含任何null元素。下面是对这段代码的逐步解析&#xff1a; 代码解…

2024 年十大 Vue.js UI 库

Vue.js 是一个流行的 JavaScript 框架&#xff0c;它在前端开发者中越来越受欢迎&#xff0c;以其简单、灵活和易用性而闻名。 Vue.js 如此受欢迎的原因之一是它拥有庞大的 UI 库生态系统。 这些库为开发人员提供了预构建的组件和工具&#xff0c;帮助他们快速高效地构建漂亮…

Canny边缘检测

开发环境&#xff1a; Windows 11 家庭中文版Microsoft Visual Studio Community 2019VTK-9.3.0.rc0vtk-example demo解决问题&#xff1a;实现了Canny边缘检测算法的图像处理过程。 图像处理过程&#xff1a; 亮度提取&#xff08;vtkImageLuminance&#xff09;图像类型转换…

RFID手持终端_智能pda手持终端设备定制方案

手持终端是一款多功能、适用范围广泛的安卓产品&#xff0c;具有高性能、大容量存储、高端扫描头和全网通数据连接能力。它能够快速平稳地运行&#xff0c;并提供稳定的连接表现和快速的响应时&#xff0c;适用于医院、物流运输、零售配送、资产盘点等苛刻的环境。通过快速采集…

nba2k24 周琦面补

nba2k24 周琦面补 nba2k23-nba2k24通用 周琦面补 下载地址&#xff1a; https://www.changyouzuhao.cn/9649.html

Multisim14.0仿真(五十三)时、分、秒、毫秒数字计时器

一、仿真效果&#xff1a; 二、时钟脉冲配置&#xff1a; 三、24进制计数&#xff1a; 四、60进制计数&#xff1a;

Python||五城P.M.2.5数据分析与可视化_使用华夫图分析各个城市的情况(中)

目录 1.上海市的空气质量 2.成都市的空气质量 【沈阳市空气质量情况详见下期】 五城P.M.2.5数据分析与可视化——北京市、上海市、广州市、沈阳市、成都市&#xff0c;使用华夫图和柱状图分析各个城市的情况 1.上海市的空气质量 import numpy as np import pandas as pd impor…

爬虫(三)

1.JS逆向实战破解X-Bogus值 X-Bogus:以DFS开头&#xff0c;总长28位 答案是X-Bogus,因为会把负载里面所有的值打包生成X-Boogus 1.1 找X-Bogus加密位置&#xff08;请求堆栈&#xff09; 1.1.1 绝招加高级断点&#xff08;日志断点&#xff09; 日志断点看有没有X-B值 日志…