欢迎访问宙启技术站
智能推送

Java数组相关函数:排序、查找、复制

发布时间:2023-06-24 18:20:05

Java中的数组是一种数据结构,它是一组具有相同数据类型的元素的集合。数组在编程中非常常用,Java也提供了很多数组相关的函数,包括排序、查找、复制等操作。下面将详细介绍这些数组相关函数。

1. 排序

Java中提供的排序函数是Arrays.sort(),它可以对数组进行排序,可以使用该函数对基本数据类型和对象类型的数组进行排序。

基本数据类型数组的排序示例代码:

int[] arr = {5, 3, 9, 1, 7};
Arrays.sort(arr);
for(int i : arr){
    System.out.print(i + " ");
}

输出:

1 3 5 7 9

对象数组的排序示例代码:

class Person{
    String name;
    int age;
    public Person(String name, int age){
        this.name = name;
        this.age = age;
    }
}
Person[] persons = {new Person("Tom", 20), new Person("Alan", 25), new Person("Lucy", 18)};
Arrays.sort(persons, (p1, p2) -> p1.age - p2.age);
for(Person p : persons){
    System.out.println(p.name + " " + p.age);
}

输出:

Lucy 18
Tom 20
Alan 25

2. 查找

Java中提供了一些查找函数,包括二分查找和线性查找。二分查找适用于已经排好序的数组,可以快速地查找某个元素是否存在于数组中。线性查找适用于未排好序的数组,它需要遍历整个数组来查找目标元素。

二分查找的示例代码:

int[] arr = {1, 2, 3, 4, 5};
int target = 3;
int index = Arrays.binarySearch(arr, target); //查找3是否存在于数组中
if(index >= 0){
    System.out.println(target + "在数组中的下标是:" + index);
}else{
    System.out.println(target + "不存在于数组中。");
}

输出:

3在数组中的下标是:2

线性查找的示例代码:

int[] arr = {10, 15, 25, 5, 7};
int target = 5;
for(int i = 0; i < arr.length; i++){
    if(arr[i] == target){
        System.out.println(target + "在数组中的下标是:" + i);
        break;
    }
}

输出:

5在数组中的下标是:3

3. 复制

Java中提供的数组复制函数有两个,分别是Arrays.copyOf()和System.arraycopy()。Arrays.copyOf()可以将一个数组的部分或全部元素复制到一个新的数组中,而System.arraycopy()则可以将一个数组的一部分元素复制到另一个数组中,并在这个过程中进行类型转换。

Arrays.copyOf()的示例代码:

int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOf(arr1, 3);
for(int i : arr2){
    System.out.print(i + " ");
}

输出:

1 2 3

System.arraycopy()的示例代码:

int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = new int[arr1.length];
System.arraycopy(arr1, 2, arr2, 0, 3);
for(int i : arr2){
    System.out.print(i + " ");
}

输出:

3 4 5 0 0

以上就是Java中常用的数组相关函数,它们可以提高编程效率,也可以让代码更加简洁明了。