java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java数组常用方法

Java数组常用方法操作指南

作者:好想写代码

这篇文章给大家介绍Java数组常用方法操作指南,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

一.前言

我们知道java是一门非常高效的计算机语言,可以将一些复杂的功能用一些方法直接实现,下面我将为大家分享一些我们常用的方法

二.length

举例:

public static void main(String[] args) {
        //求数组的长度
        int[] arr = {1,2,4,5,4,3,25,24,77};
        int length = arr.length;
        System.out.println(length);
    }

当我们创建数组并且想要知道数组长度的时候就可以使用它。

三.tostring()

import java.util.Arrays
int[] arr = {1,2,3,4,5,6};
String newArr = Arrays.toString(arr);
System.out.println(newArr);

它的作用是将数组转化为字符串的形式打印

四.拷贝三兄弟

4.1Arrays.copyOf()

作用:拷贝整个数组,或拷贝到指定长度的新数组。
特点:代码最简单,自动创建新数组。

import java.util.Arrays;
public class Test {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        // 拷贝整个数组
        int[] newArr = Arrays.copyOf(arr, arr.length); 
    }
}

4.2 System.arraycopy()

作用:原生底层方法,性能最快,可指定拷贝位置、长度。

特点:效率最高,但参数多、写法稍复杂。

int[] arr = {1,2,3,4,5};
int[] newArr = new int[arr.length];
// 参数:原数组、原起始位置、目标数组、目标起始位置、拷贝长度
System.arraycopy(arr, 0, newArr, 0, arr.length);

4.3 Arrays.copyOfRange()

作用:拷贝数组的指定区间(从索引 from 到 to)。

特点:适合截取数组的一部分。

import java.util.Arrays;
public class Test {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        // 拷贝索引 1 ~ 3(不包含3) → [2,3]
        int[] newArr = Arrays.copyOfRange(arr, 1, 3); 
    }
}

五.binarySearch()

二分查找:以升序数组为例, 二分查找的思路是先取中间位置的元素, 然后使用待查找元素与数组中间元素进行比较:

如果相等,即找到了返回该元素在数组中的下标

如果小于,以类似方式到数组左半侧查找

如果大于,以类似方式到数组右半侧查找

重要提醒:二分查找要求数组必须是 升序排序好的!

import java.util.Arrays;
public class Test {
    public static void main(String[] args) {
        int[] arr = {1, 3, 5, 7, 9};
        // 二分查找 5
        int index = Arrays.binarySearch(arr, 5);
        System.out.println(index); // 输出 2(找到返回下标)
    }
}

六.sort()

功能:相邻元素两两比较,大的往后交换,每一轮把最大值 “冒泡” 到末尾,共循环 数组长度-1 轮。

public class BubbleSort {
    public static void main(String[] args) {
        int[] arr = {5, 2, 9, 1, 5, 6};
        // 外层:一共 arr.length-1 轮
        for (int i = 0; i < arr.length - 1; i++) {
            // 内层:每轮比较次数逐轮减少,后面已有序不用再比
            for (int j = 0; j < arr.length - 1 - i; j++) {
                // 前一个 > 后一个,交换
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        // 遍历输出
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }
}

到此这篇关于Java数组常用方法操作指南的文章就介绍到这了,更多相关Java数组常用方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文