目录
3、binarySearch(int[] a,int key)
Arrays类
java.util.Arrays
Arrays类为数组操作的工具类,提供了大量对数组进行操作的静态方法。
1、toString()
返回指定数组的内容的字符串表示形式。
int[] aa = {2,1,5,6,12};
String str = Arrays.toString(aa);
System.out.println(str);
打印结果:
[2, 1, 5, 6, 12]
2、sort()排序
对数组的数据进行排序
int[] aa = {2,1,5,6,12};
Arrays.sort(aa); // 默认是升序排序——如何降序(需要传入比较器)
System.out.println(Arrays.toString(aa));
String[] ss = {"aaaxx","bbb","acd","123","nn2"};
Arrays.sort(ss);
System.out.println(Arrays.toString(ss));
打印结果:
[1, 2, 5, 6, 12]
[123, aaaxx, acd, bbb, nn2]
3、binarySearch(int[] a,int key)
二分法查找 查找某个值在数组的索引位置
要使用binarySearch 必须先对数组进行排序(使用sort),如果不排序,结果是不正确的。
a - 要搜索的数组
key - 要搜索的值
如果它包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。插入点 被定义为将键插入数组的那一点:即第一个大于此键的元素索引,如果数组中的所有元素都小于指定的键,则为 a.length。
注意,这保证了当且仅当此键被找到时,返回的值将 >= 0。
能在数组找到元素的情况:
int[] aa = {2,1,5,6,12};
Arrays.sort(aa); // 排序
int index = Arrays.binarySearch(aa,6); // 找对应元素的索引
System.out.println(Arrays.toString(aa));
System.out.println(index);
打印结果:
[1, 2, 5, 6, 12]
3
不能再数组找到元素的情况:
int[] aa = {2,1,5,6,12};
Arrays.sort(aa); // 排序
int index = Arrays.binarySearch(aa,4); // 找对应元素的索引
System.out.println(Arrays.toString(aa));
System.out.println(index);
打印结果:
[1, 2, 5, 6, 12]
-3
4、copyof(数组,长度)数组拷贝
参数说明:
1 从哪个数组拷贝数据
2 拷贝多少个数据
返回值:
返回数组(拷贝后的数组)
int[] aa = {1,2,3,4,5};
int[] bb = Arrays.copyOf(aa,3);
System.out.println(Arrays.toString(bb));
int[] cc = Arrays.copyOf(aa,10);
System.out.println(Arrays.toString(cc));
打印结果:
[1, 2, 3]
[1, 2, 3, 4, 5, 0, 0, 0, 0, 0]
System类的arraycopy 同样可以完成数组的拷贝
int[] aa = {1,2,3,4,5,6,7,8,9};
int[] bb = new int[10];
System.arraycopy(aa, 2, bb, 4, 5); // 1源数组 2从源数组的哪个位置开始 3目标数组 4从目标数组的哪个位置开始放 5拷贝多少个数据
System.out.println(Arrays.toString(bb));
打印结果:
[0, 0, 0, 0, 3, 4, 5, 6, 7, 0]