(33)java基础语法 --工具类和常用类 --Arrays类

目录

Arrays类

1、toString()

2、sort()排序

3、binarySearch(int[] a,int key)

4、copyof(数组,长度)数组拷贝


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]


上一篇:(32)java基础语法 --多态polymorphic

下一篇:(34)java基础语法 --工具类和常用类 --Date类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值