Arryas中方法的联系
2020-04-14
- Arrays提供了一个copyOfRange方法进行数组复制。不同的是System.arraycopy,需要事先准备好目标数组,并分配长度。 copyOfRange 只需要源数组就就可以了,通过返回值,就能够得到目标数组了。
package Arrays联系;
import java.lang.reflect.Array;
import java.util.Arrays;
public class copytext
{
public static void main(String[] args) {
int a[]=new int[]{1,2,3,4,5};
// copyOfRange(int[] original, int from, int to)
// 第一个参数表示源数组
// 第二个参数表示开始位置(取得到)
// 第三个参数表示结束位置(取不到)
int[] b= Arrays.copyOfRange(a,0,5);
for (int i=0;i<b.length;i++)
{
System.out.println(b[i]);
}
}
}
该方法需要传递3个参数,分别为复制数组、开始节点序号、结束节点序号;(数组已0开始,所以结束序号内容不会被复制)
2.转换为字符串
package Arrays联系; import java.lang.reflect.Array; import java.util.Arrays; public class copytext { public static void main(String[] args) { int a[] = new int[]{1, 2, 3, 4, 5}; String as=Arrays.toString(a); System.out.println(as); } }
Arrays.toString方法,将数组转换为字符串,转换得到的内容是包括【】。
3.Arryas中自带的一个排序方法sort()
package Arrays联系; import java.lang.reflect.Array; import java.util.Arrays; public class copytext { public static void main(String[] args) { int a[] = new int[]{78,24,105,33,99}; Arrays.sort(a);//方法调用 String as=Arrays.toString(a); System.out.println(as); } }
sort()方法会将数组中的内容按从小到大进行排序;
3.1查询元素出现的位置
需要注意的是,使用binarySearch进行查找之前,必须使用sort进行排序
如果数组中有多个相同的元素,查找结果是不确定的
package Arrays联系; import java.lang.reflect.Array; import java.util.Arrays; public class copytext { public static void main(String[] args) { int a[] = new int[]{78,24,105,33,99}; Arrays.sort(a);//方法调用 String as=Arrays.toString(a); System.out.println(as); System.out.println("99在数组中的序号为"+Arrays.binarySearch(a,99)); } }
得到结果:
[24, 33, 78, 99, 105]
99在数组中的序号为3
Process finished with exit code 0
注:Arrays.binarySearch()得到的是搜索值的角标【小1】)
4.判断是否相等
比较两个数组的内容是否一样
package Arrays联系; import java.lang.reflect.Array; import java.util.Arrays; public class copytext { public static void main(String[] args) { char a[]=new char[]{'a','s','d','w'}; char b[]=new char[]{'a','s','d','w'}; System.out.println(Arrays.equals(a,b)); } }
方法返回值为true或者false,无法精确定位到不同位置,需注意

浙公网安备 33010602011771号