Java中的数组函数操作及其用法
数组是Java中最常用的数据结构之一,提供了一种有序的、可重复的数据集合。常用的数组函数操作有:创建数组、初始化数组、排序数组、查找数组元素、修改数组元素、删除数组元素等。
1.创建数组
创建数组是指在程序中定义一个数组并分配一块连续的内存空间来存储数组元素。Java中创建数组有两种方式:
- 声明数组并初始化,如int[] arr = {1,2,3};
- 声明数组并分配空间,如int[] arr = new int[3];
2.初始化数组
初始化数组是指在创建数组后,将数组元素赋初值。Java中数组元素的默认值为0,因此如果需要给数组赋其他初值,则需要进行数组初始化。常见的数组初始化方法有以下几种:
- 直接赋值,如int[] arr = {1,2,3};
- 使用循环赋值,如int[] arr = new int[3];
for(int i=0;i<arr.length;i++){
arr[i]=i+1;
}
- 使用Arrays类进行赋值,如int[] arr = new int[3];
Arrays.fill(arr,0);//将数组元素全部赋为0
3.排序数组
排序数组是指将数组元素按照一定规则进行排序,主要包括升序排序和降序排序。Java中对数组进行排序主要有以下三种方法:
- 冒泡排序,时间复杂度是O(n^2),不适用于大规模数据排序。
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
- 选择排序,时间复杂度是O(n^2),稍微比冒泡排序慢一些。
for(int i=0;i<arr.length-1;i++){
int min=i;
for(int j=i+1;j<arr.length;j++){
if(arr[j]<arr[min]){
min=j;
}
}
if(min!=i){
int temp=arr[i];
arr[i]=arr[min];
arr[min]=temp;
}
}
- 快速排序,时间复杂度是O(nlogn),最常用的一种排序算法。
public static void quickSort(int[] arr,int left,int right){
if(left>=right){
return;
}
int i=left,j=right;
int target=arr[left];
while(i<j){
while(i<j&&arr[j]>target){
j--;
}
if(i<j){
arr[i++]=arr[j];
}
while(i<j&&arr[i]<target){
i++;
}
if(i<j){
arr[j--]=arr[i];
}
}
arr[i]=target;
quickSort(arr,left,i-1);
quickSort(arr,i+1,right);
}
public static void quickSort(int[] arr){
quickSort(arr,0,arr.length-1);
}
4.查找数组元素
查找数组元素是指在数组中查找满足特定条件的元素。Java中对数组进行查找主要有以下两种方法:
- 线性查找,在无序数组中查找元素时使用,时间复杂度是O(n)。
public static int linearSearch(int[] arr,int target){
for(int i=0;i<arr.length;i++){
if(arr[i]==target){
return i;
}
}
return -1;
}
- 二分查找,只适用于有序数组中查找元素,时间复杂度是O(logn)。
public static int binarySearch(int[] arr,int target){
int left=0,right=arr.length-1;
while(left<=right){
int mid=(left+right)/2;
if(arr[mid]==target){
return mid;
}else if(arr[mid]>target){
right=mid-1;
}else{
left=mid+1;
}
}
return -1;
}
5.修改数组元素
修改数组元素是指对数组中指定的元素进行修改。Java中数组元素是可以修改的,只需要通过下标索引即可进行修改。
- 修改数组中的元素,如int[] arr = {1,2,3};
arr[0] = 4;
6.删除数组元素
删除数组元素是指将数组中的指定元素删除。在Java中,数组元素是连续存储的,因此不能直接删除元素,只能将指定元素覆盖掉。Java中删除数组元素的方法有以下两种:
- 删除指定元素,如int[] arr = {1,2,3};
int index = 1;
System.arraycopy(arr,index+1,arr,index,arr.length-index-1);
arr[arr.length-1] = 0;
- 删除重复元素,如int[] arr = {1,2,2,3,3};
int index = 0;
for(int i=1;i<arr.length;i++){
if(arr[i]!=arr[index]){
arr[++index] = arr[i];
}
}
for(int i=index+1;i<arr.length;i++){
arr[i] = 0;
}
总之,在Java中,数组函数操作是非常常见和重要的。了解和熟练使用它们对于开发人员来说是必要的。
