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中常用的数组相关函数,它们可以提高编程效率,也可以让代码更加简洁明了。
