数组常用方法之复制、替换(填充)、比较、排序和搜索

来源:互联网 发布:如何退出淘宝客 编辑:程序博客网 时间:2024/06/03 13:21

一、数组的复制

Arrays.copyOf()方法是复制数组至指定长度。语法:int newArr[] = Arrays.copyOf(arr,3);

复制源数组中从下标0开始的3个元素到目的数组,从下标0的位置开始存储


import java.util.Arrays;
public classTestArray{
public staticvoid main(Stringargs[]){
int arr3[] = {1,2,3,4,5,6};
int a[]=Arrays.copyOf(arr3,3);
for(inti =0;i<a.length;i++){
System.out.println(a[i]);
}
}
}

结果是:1 2 3

二、数组的填充

Arrays.fill()方法。对数组中的元素进行替换。语法:Arrays.fill(arr,2,3,"bb"); 位置2包括位置3不包括替换值“bb”

有两种形式:一种形式是“fill(type []a,type b)”;表示把数组a的全部空间填充为b.

                       另一种形式是“fill(type a[],int key1,int key2,type b);” 表示把数组a从key1到key2的全部内容填充为b,但不包含key2的位置。


import java.util.Arrays;
public classTestArray{
public staticvoid main(Stringargs[]){
int arr3[] = {1,2,3,4,5,6};
Arrays.fill(arr3,1,3,0);
for(inti =0;i<arr3.length;i++){
System.out.println(arr3[i]);
}
}
}

结果是:1 0 0 4 5 6

三、数组的比较

Arrays.equals()方法。

实现比较的函数为equals(数组1,数组2)。如果两个数组的数据元素数量相同,相同位置上的数据元素又相等,则这两个数组想等,函数返回boolean值true,否则不相等,函数返回boolean值false。


import java.util.Arrays;
public classTestArray{
public staticvoid main(Stringargs[]){
int arr3[] = {1,2,3,4,5,6};
int arr4[] = {1,2,3,4,5,6};

int arr1[] = {1,2,3,4,5,6};
int arr2[] = {1,2,3,4,5,7};

boolean a=Arrays.equals(arr3,arr4);
boolean b=Arrays.equals(arr1,arr2);

System.out.println(a);
System.out.println(b);
}
}

结果是:ture  false


四、数组的排序

Arrays.sort()方法。

数组的排序指依据数组中的数据类型升序排序。该方法有两种参数格式:一是“sort(数组引用)”;二是“sort(数组引用,参数1,参数2)”。前者表示对整个数组升序排序,后者表示对数组中的一个范围内的元素排序,参数1是起始位置,参数2是截止位置,但不包含该位置。

import java.util.Arrays;
public classTestArray{
public staticvoid main(Stringargs[]){

int arr1[] = {4,7,3,2,8,1};
int arr2[] = {4,7,3,2,8,1};

Arrays.sort(arr1);
Arrays.sort(arr2,0,4);

for (inti=0;i<arr1.length;i++){
System.out.print(arr1[i]);
}
System.out.println(" ");

for (inti=0;i<arr2.length;i++){
System.out.print(arr2[i]);
}
}
}

结果是:123478     234781


五、数组的查找

Arrays.binarySearch().

数组的查找是在指定数据类型的数组中查找一个具体的元素,如在int型数组中查找一个整数,如果该整数存在,则输出该整数在数组中的位置。需要注意的是数组中元素的位置是从0开始计数的。如果该整数不存在则输出一个负值。


import java.util.Arrays;
public classTestArray{
public staticvoid main(Stringargs[]){

int arr1[] = {4,7,3,2,8,1};
int arr2[] = {4,7,3,2,8,1};

int a=Arrays.binarySearch(arr1,3);
int b=Arrays.binarySearch(arr2,9);

System.out.println(a);
System.out.println(b);
}
}

结果是:2 -7


阅读全文
0 0
原创粉丝点击