00:00
好了,那咱们就接着再往下了,各位啊,再往下的话,我们看一下工具,看一下工具啊,因为这个瑞S这块我们还没有去没没有去说,只是说了个排序,是不是来我们在这儿呢,新建一个class啊,我们叫。A raise test。A瑞test是不是已经写过了?A瑞TEST01TEST02。就是想刚才一个好消息啊,好消息是sun公司已经为我们程序员写好了一个数组工具类啊,叫做叫做什么呀,java.u ara。啊,那么一般我们呀开发呀,要参考帮助文档啊。对,Ara里边有哪些方法,我们要参考一下帮助文档啊,就java.u ara这个类中,就是这个工具类中有哪些方法,我们开发的时候要参考帮助文档或者叫API帮助文档,不要死记硬背,不要死记硬背,没没有你这么干的啊,这个工具,他这个瑞。
01:19
哎,我们可以看一下点过去。或者说我们我们直接。敲两次shift,然后我们在这搜一下class叫ari ari啊。搜不到,加完u a race好搜到了啊,那这个ara大家看到了,这里边是不是有很多很多的方法,CTRL加F12能够列出这个方法,你看特别特别特别多,你看其中你看这个方法是都是二分法查找,二分法查找吧,二方法找你看还有比较compare比较方法对不对?诶还有copy方法,你看copy是不是数组拷贝啊,数组拷贝吧,哎,Copy方法你看是不是还有equals啊是不是,哎,还有feel是不是,哎填充啊再往下呢?还有什么呀?哎,匹配你看对不对啊,还有匹配啊,然后还有thought对不对?排序啊排序其实大家在这里边用的最多的就是两个,一个是排序,这用这个类啊,就散功能写的这个类,用这个类,最多是一个是排序,一个是二分法查找。
02:21
啊,用的比较多的啊,就是这样的,那我建议你在开发的时候不要去死记硬背啊,这点东西为什么说,为什么杜老师之前说往后的东西越好,越来越好学,原因是什么呢?是因为我们以后啊。再也不用记了。每人手里都有什么,都有帮助文档对吗?我们是不是都有帮助文档,那我们去记它干什么?我们查文档呗,是不是查文档Java。叫做u utility这个包。下面找一找以A打头的叫一叫一个A,你看这个叫A啊,这个类。对吧,Java u a往下大家看是不是有很多是不是都是静态的,你看静态方法,你看全是静态的,你看全是静态的,你看是吧,它为什么全是静态的,因为这是个什么类啊各位。
03:11
工具吧,这是不是一个工具啊,哎,工具类中的方法都是静态啊,工具类当中的方法都是静态的,来在这块呢,介绍了介绍一下啊,介绍一下ara工具类啊,Java u to ara工具类啊,所有方法都是静态的啊,直接用什么呀,直接用类名调用调用啊。调用。主要使用的是两个方法,二分法查找排序。啊,以后要看文档不要背,不要死记硬背啊,我在这叮嘱一下各位啊,叮嘱一下,那打开文档看一下,找一找,搜一搜,你看人家文档里边写的多好,二分法查找对吧?二分法你看搜索范围内指定字符数组的指定值使用二进制的搜索算法,我的天呐,还有二进制的搜索算法,搜索算法是不是使用二进制的搜索算法搜索指定值的指定值的指定数组啊,在这个指定数组里边搜索对吧?你点过去看一看,他要在这个double数组里边搜这个double是不是,然后呢,他这边呢,有一个参数是不是啊,有个参数,呃阵列被搜查,这个A就是代表什么意思啊,A其实代被搜索的数组啊,K是什么呢?K就是要搜索的价值啊,其实这个你看翻译的多多烂,是不是太烂了啊,要搜索的值呗,对不对啊,那么这块结果是什么呢?啊,大家看一下。
04:51
啊,搜索引的搜索关键字,如果它是包含在数组数数组内的话,就是这个返回值,返回什么,返回我们这个元素在我们这个数组里面的下标啊,这个下标叫索引,你看索引啊,叫下标啊,否则是不是负一啊你看。
05:08
是不是,哎,返回的是个负一啊,返的是个负一。啊,请注意这保证返回值将是大于零啊,如果和只有一个键被发现的啊,先不用管它啊,就这个BA4是这个方法可以二分法查找,那我们就可以用一下啊,是不是可以用一下啊,你比如现在我们也可以先用一下排序啊,比如说现在有个数组,这个数组呢,现在呢,比如说。好,那么接下来我们对它排序,排序是ara.thoughtt是不是,你看参数有很多,其中有一个in特零数组可以排序,排序输出,输出呢?负二循环是不是I等于零,I小于这个数组位点Les I加加,那输出A瑞下标为I的这个元素,那么接下来我们去执行看一看这个是不是从小到大排序的啊,一二三五五六十二,32是吧?那么接下来我们来搜索一下,叫做二分法查找,因为已经排序了啊,是建立在什么排序基础之上,那么这个时候呢,我们二分法查找怎么查呀,来查一下啊,我们叫ara工具类,点什么呀?哎,点b research啊,通过这个in的数组,我们去找一下这里这里的这个32这个元素。
06:29
然后返回它的下标或者索引,然后我们输出这个index。来。那这样吧,还是按照我们刚才的啊,等于等于负一的情况下,是不是代表该元素不存在呀,是吧?哎,那么这边是代表什么呀?该元素下标是多少啊哎,Index。你该很好用,注意啊,导包啊,你看包你不用导,它是Java u to下的,你不用导是因为idea工具给你倒了啊,你要导包的就这个类的静态方法,你把数组传进去,它就排序了,你在这查它就能能查到,也就讲了半天,各位啊,我们这个beary search2分法查找,如果这个算法你不太会啊,问题也不大,因为以后的开发我们要用工具,我们要用工具都是散公司写好的,直接调方法就行了,直接调。
07:22
啊,直接掉啊走。该元素下标是八对吧,012345678是不是,你找一下这个五,看它是它是几啊,因为有两个五,那么这时候我找一下。找一下五,咱们执行一下,看看结果是多少啊,它的下边是401234,你看01234。他找的是这个。是吧,啊找的是这个,那跟元素的数量有没有关系,123,然后在三后边加一个四。
08:01
我在加吧。各位啊,加个四,然后再执行一下。嗯,他就一直是找中间的是吧,01234。啊,他不一定找哪个各位啊,不一定找哪个。他就是找到五为止,他有可能找到中间这个五,也有可能找到这五,也有可能找到这个五,都有可能啊,他不一定是找第一个,不一定是找第一个啊,他看他走到一个算法,算法走到什么程度。啊,赶上谁就是谁,明白吧,啊,他赶上谁就是谁啊,就这意思。好了,那么现在呢,我问大家,如果有这个二分法查找的话。呃,那么大家想一想,如何判断这个数组里面是否包含某个元素,你怎么做?各位。如何判断这个数组里边包含不包含这个元素?这个是不是就可以了。
09:00
这个结果如果是负一的话,就代表不包含吧。就将来你有可能会有一个需求,什么需求啊,就有可能是要判断一下这个数组里面是否包含某一个元素。有可能会有这样的需求,各位啊。你是不是可以考虑采用二分法查找的方式啊?查找出来,如果是负一的话,就代表什么呀。不包含。如果不是负一,是大于等于零的,是不是代表这个数组里边包含这个元素啊?对吧,你你想一想啊,你想一想就将来有可能会有这样的需求,说来写一段程序,判断数组里边有没有这个元素,判断一下这个数组里边有没有这个元素,当然你有一个很笨的办法,就是第一个元素挨着往后找。但这种方式效率比较低。对吧?哎,那查找这个数组里面包含不包含这个元素,你可以采用二方法查找,查找,如果返回负一的话,就代表不包含,对吧?啊,如果返回的不是负一,是大于等于零的,那代表这个数组里边是包含这个元素的,我们有可能会有以后有这样的一个需求,各位啊,需求行了,那各位到此为止吧,咱们这个数组就算结束了,各位啊,数组所有的内容就这些内容啊,就这些内容。
10:07
行吧,那咱们先休息一下,下节课我们看常用类了。
我来说两句