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

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.kler.cn/a/229661.html

相关文章:

  • C++二维数组
  • jsp商场会员卡管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • 远程主机可能不符合 glibc 和 libstdc++ Vs Code 服务器的先决条件
  • vue3项目中的404页面
  • 第4节、电机多段转动【51单片机+L298N步进电机系列教程】
  • 软考21-上午题-数组、矩阵
  • Flutter中的Container小部件介绍与使用
  • 【Linux】线程池
  • 电力负荷预测 | 基于AE-LSTM的电力负荷预测(Python)
  • 一文学会gtest UT测试编写(TEST\TEST_F)
  • 【手写数据库toadb】虚拟文件描述符,连接表对象与物理文件的纽带,通过逻辑表找到物理文件的密码
  • 【数据结构笔记】线性表(代码)
  • 《动手学深度学习(PyTorch版)》笔记7.4
  • 每日一题(づ ̄3 ̄)づ╭❤~(数字在升序数组中出现的次数,整数转换)
  • arm 汇编积累
  • 节点确认交易全过程
  • docker下拉(pull)镜像和生成容器,文章尾部有常用的linux命令
  • PHP实现DESede/ECB/PKCS5Padding加密算法兼容Java SHA1PRNG
  • Jgit Packfile is truncated解决方案
  • c++中的char[] ,char* ,string三种字符串变量转化的兼容原则