java数组工具类常用方法,Java数组工具类Arrays-18-常用方法介绍

前面我们学习了冒泡和选择排序以及二分查找,还有数组如何转换成字符串,其实接下来学习的这个Arrays类都提供了解决这些问题的方法。Arrays类是一个数组工具类,就像String类是处理字符串的工具类一样,Arrarys就是为解决数组相关操作而设计的一个工具类。下面介绍三个常用的Arrays类下方法,分别是转字符串输出,排序和二分查找。

1.数组转换成字符串

前面几篇文章(冒泡排序之前),我们分别用了String类和StringBuffer类方法去实现把一个数组输出成一个字符串。例如int[] arr = {11,22,33,44} 输出后变成 [11,22,33,44].前面我们写了好多行代码,这里使用Arrays.toString(),一行代码就搞定。

package arrays;

import java.util.Arrays;

public class Test_Arrays {

public static void main(String[] args) {

int[] arr = {23,56,79,24,80,13};

// 使用toString方法输出数组

System.out.println(Arrays.toString(arr));

}

}

输出:[23, 56, 79, 24, 80, 13]

上面说明Arrays类重写了Object的toString方法,你在Eclipse上按下Ctrl,点击toString()方法,查看源码实现,发现和我们前面用数组写的方法是一样的。

2.排序

package arrays;

import java.util.Arrays;

public class Test_Arrays {

public static void main(String[] args) {

int[] arr = {23,56,79,24,80,13};

// 使用sort进行排序

Arrays.sort(arr);

System.out.println(Arrays.toString(arr));

}

}

输出:[13, 23, 24, 56, 79, 80]

点击sort()进入源码,发现是使用了快速排序的方法。

3.二分查找

package arrays;

import java.util.Arrays;

public class Test_Arrays {

public static void main(String[] args) {

int[] arr = {23,56,79,24,80,13};

// 使用sort进行排序

Arrays.sort(arr);

// 二分查找

System.out.println(Arrays.binarySearch(arr, 23));

System.out.println(Arrays.binarySearch(arr, 56));

System.out.println(Arrays.binarySearch(arr, 99));

}

}

输出:

1

3

-7

来看看为什么是输出-7,我们打开API,搜索找到Arrays类,然后找到binarySearch方法其中返回部门描述有这么一段话:如果它包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。插入点 被定义为将键插入数组的那一点:即第一个大于此键的元素索引,如果数组中的所有元素都小于指定的键,则为a.length。注意,这保证了当且仅当此键被找到时,返回的值将 >=0。

什么是插入点呢?上面我们要查找99,而数组排序后最多值对应索引为5,代码认为99应该插入在索引5后面,也就是索引6,索引输出-6-1=-7. 你继续点击打开二分查找源码,发现和我们前面介绍的二分查找代码很类似。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值