00:00
那刚才这个同学说集合类之间的转换,集合类之间转换这个东西你不用讲啊,这构造方法吗。加va u。加我就。是不是,嗯,找找找找一个他。List,这是list的接口,找一个list。你看的集合在new的时候,它的构造方法里边能不能传个集合。可以啊,那你就把集合传到这就new就行了,把集合传过来扭一下就变成release了。啊,就比如说这边集合,我们传一个set集合,传起来就变成list集合了,那你反过来你找找这个ET。找找这个以H开始的这个哈西set,你哈set集合,你看看new的时候能不能传一个collection,你看这个哈set集合在创建的时候能能传个集合。对吧,你只要把集合传过来,拗一下就变成这个这个集合了,你假如说这是list的集合,你传过来对吧?哎,你扭一下就变成哈赛。
01:03
就你通过集合的构造方法就可以完成集合的转换呀,但是你不可能不可能map啊,Map这个直接转换成set。对吧,那你要map转成set的话,你得调个方法,这个方法叫key set方法,你可调这个方法。它就转换了,这是你的基本功啊,你记记方法名,你你得记住啊,要不然让你练啥呢,是不是有同学下来之后呢,哎,一门心思在那抠抠抠抠一个晚上干啥呀,抠术语结构。抠到第二天之后,发现一课堂代码没敲光在那抠出以后有啥用?咱们来点实惠的,自己还是得会得会敲代码。敲代码是王道,各位啊,这才是第一那个数据结构,你后期慢慢去理解。慢慢去理解啊。集合的一个互相转换。
02:02
这个呢,我就不说了啊,你自己下一是总结吧,行吧,通过构造方法是一种方式,Map转成set的话是K赛的方法,嗯。那么再往下的话,我们这个class还有什么class啊,各位是不是还有这个呀。是吧,那你就test呗。是不是,哎,那你就直接吹test呗。那你想想这里边你需要掌握什么东西啊。你需要掌握的不就还是这几个吗?好好想想。是不是还是这几个,这几个语法是需要你掌握的。每个集合对象六啊,怎么加元素啊,怎么取出某个元素啊,便利集合呀。是不是啊,那首先呢,这块的话,我们可以给一个吹。是不是,哎,假如说我们这儿给一个盾。对吧,或者给个引梯对不对,哎,引梯。
03:00
那么这个时候呢,我们new一个什么呀叫呗。对吧,六出来之后呢,这个集合就创建了呗,集合的创建是不是,那就再往下就添加元素呗,那添加元素的话你就加呗,I的加一个一进去。点的再加个100进去。对吧,再加一个十进去。对吧,再加一个什么呀,零进去数字呗。对吧,然后接下来你就可以便利呀,对吧,便利这块的话,你用你你用什么呀,迭代器也行,你你你你你使用迭代器,对吧,迭代器的方式,你迭代器方式或者增强或者便利的时候采用什么呀,叫做for each都行,对吧,迭代器你就再写一遍呗,迭代器每迭代都是什么呀,都是in teacher类型啊。对吧,哎,嗯,等不是new了,就叫什么TS点一瑞拿到迭代器对吧?哎,然后接下来在这怎么着对它进行循环是不是这这代码的话就是固定写法了啊,你就写就行了,哎,如果它是要有更多元素的话,在这你就调一下谁呀,哎,这个next,然后返回一个什么呀,哎,In t是不是,哎,然后把这个元素输出呗。
04:09
你看你在这走一个,你看。对吧,哎,你看升序你看,所以说通过这个你也可以测试出来一个什么呀,可以测试一下吹ET集合中的什么元素诗可排序的,对吧?你可以测试一下,把这个测出来了是可排序的,有老师他能不能重复我再放一个十,再放一个十,再放个十,我这几个十放进去它会是怎样的,来我再辩理一下。来看一下。它还是这个数据十是不是只放进去一个呀,它不可重复啊,对吧,不可重复,无序不可重复嘛,对不对,哎无序不可重复,那这个时候呢,如果你觉得不过不够过瘾,对吧,你可以再测一下石钝的。对不对,哎,你可以再测试一下。啊,可以测试一下什么呀?啊,这个tree set集合中存储string对吧?哎,In t啊,这些类都是散写好的。
05:11
对吧,哎,写好的要测一下这个呗,你看它能不能排序。是不是你负二一的话,你负二循环对吧,来个引T这对吧,X等于什么呀,叫我们的一个什么,哎,我们的TS直接的输出这个XX啊,然后我们在这里执行。降序输出。你想降?想让谁讲去?想让这个降血。嗯,想让这个降序的话,那就没有办法了,你你得你得用别的招了。因为他这个比较的规则已经写死了,嗯,就是升序的这种方式。
06:01
啊,你要用别的方式,你可以考虑用别的方式啊。对吧,啊,你比如转成数组,数组再翻转。是不是,或者你自己写个算法给它翻转一下也行。对吧,那你只不过就是输出的一个问题。是吧,哎,输出这个问题,自己这个自己想想办法呗。传入比较器。传入比较器也没用。嗯,传入比较器。A。重写compare方法呀。那你看看能不能重写,你这个类能不能继承,你看看。看看那个类能不能集成。不能继承,你咋重写?是吧,哎,传比较倒是可以的。
07:04
传感器是可以的。但这个比较器它传进去,不知道是他按照他自己的这个按照哪种方式去走。哦,应该是按照比较器的方式去走,你可以传传入比较器,可能有可能是可以的。对。假如说船比较细,你看在这儿本来是回顾的啊,来另一个什么呀,叫competor。这里面有两个int类型是不是,那你这边的话就O2呗。O2减O1呗,是不是,你看看他能不能升,能不能调过来这个顺序啊。调过来了是不是,哎,调过来这个顺序了,可以这样序。就写比较级可以改变规则。编写比较器可以改变什么呀?改变规则,改变规则。因为它底层我记得他应该是先走的比较细。
08:03
对吧,这里面方法先走的是比较齐,但是这种你谁谁谁在改变,你第着它的它的这个算法啊,一般没人去改变啊铺的方法。步的方法是吧,你看这个方法上来,首先第一件事是不是先走的比较细啊。对吧,并没有走这个。对不对,哎,可以啊,行。想改变它的顺序的话,你就这么做呗,传个比较器就行了。自己再重新改一下这个算法。是不是,嗯,自己再改一下算法啊,把算法改一下。这是自动拆箱啊,自动拆箱int类型变成数字就直接拆了啊,自己就拆了。好了,那这块的话就是我们要会我们的一个对象的创建呀,向集合中添加元素对吧?哎,怎么去加元素,然后呢,再往下的话就是说,哎,便利集合。测试这个吹塞集合中的元素是可变可排序的,可排序的对吧。
09:04
编写比较器还可以改变规则,重写方法不靠谱啊。重写这个方法不太靠谱,因为这个方法现在你这个类继承不了,你就重写不了,是不是啊,但是这个想法非常不错啊,啊这个语言还是很有进步啊,还是很有进很有进步的。不错啊不错,这个来下边这个传入比较器,这个尾斌这块也是很强大是吧,想了一个传入比较器啊,我最初开始啊,我还没往这没往这想啊,传比较器就行了,对比较器传过来就可以改变它的规则啊,改变它的规则那么行了,那这块的话,咱们这个再往下的话,我觉得你你你不能光怎么着啊,光光测自己的一亩三分地,你说测一个string啊,测个隐梯,这就完了就完了,是不是你应该再再往下测什么呀。你需要测试一下这个集合里边定义这个自自定义就是传输自定义类型。是不是应该测试一下什么呀,吹塞集合中。
10:01
存储的类型是自定义的。对吧,自定义的。那么自定义的话,这块的话,你你可能在这里呢,你。订一个class啊。你class假如说就随便定一个A呗,性I对吧,你这里有有一个构造方法,你就自己定义呗,是吧,简单写一写是不是,哎,那一个属性,一个构造方法。对不对,然后呢,再往下你来个图论呗。是不是这个图论方法的话,你就写一下啊,写一下对吧,哎,就自动生成的,你也不用写,写它干啥呀,是不是前面讲的东西,你看到现在都是生成的。那么接下来这个时候呢,你就可以让他去干啥呀,Implement去实现什么呀,叫comparable啊comparable接口啊是不是哎用上泛型,那么这个时候把这个方法给它加上来呗。对不对啊,你看比较的话怎么比呀,那this.i呗减去什么呀,o.I呗是不是哎就可以了,那这就是一个比较规则嘛。
11:09
是不是,哎,这是个比较规则compare to嘛方法,你把这个写出来,写出来之后,接下来你给一个集合呗,是吧,这个集合还是什么呀,叫出ET,这个出ET集合里边呢,只不过它存的这个元素是不是啊,Tet集合中存储什么呀?自定义类型tet里边存A。对吧,A,你一个什么呀,吹set是不是,哎,你扭出来a tree呢,点I对吧,New a里边传一个100进去。是不是,哎,然后再来再来再来再来再来是吧?哎,你传一个什么呀,比如说200进去传一个什么呀,哎500进去传个什么呀,300进去传个什么呀,400进去传个什么呀,1000进去行吧,那这样的话,你现在存进去了,你可以对他进行便利呀。又来到便利了,是不是for循环来什么类型AA冒号A,是不是直接输出A?
12:06
你输入A的时候会掉透资论方法呀,To方法已经重写了,你看它有没有排序。对吧,这排序了吗。从小到大,你要从大到小的话,你给他调换个顺序呗,是不是你把它拿过来调换个顺序,这边的话你可能减去什么呀,减去就减去这个,这个叫什么z.I呗。是吧,那再走一个,你看。嗯。是不是,哎,就是你可以多测一测,你看除了这种方式之外,你还可以怎么着啊,哎,你可以再再再再来一个,这这是这是采用什么呀,第一种方式对不对啊,第一种方式叫做呃,实现叫comparable接口的对不对,你你第二种方式就可以。再提供一个类是吧,Class b这个类啊,你写呗,对吧?哎,再提供构造方法,随便写点代码是这回事儿就行了,是不是?哎,来在这儿to论方法,你是不是要重写to论。
13:13
对吧,哎,然后接下来你在这一块我说了,你你你不你不去实现你这个comparable接口,你可以单独编写的比较级呀,对吧,你如class be compor。Implement去实现什么呀?The compar这个接口。对不对,哎,那么这个时候呢,我们在这把这个方法加一下就行了。对吧?哎,在这的话,你就写上那个O一点什么呀,I,然后减去什么呀,o2.i就行了,比较规则就写完了,这是比较器呀,对不对,单独编写这么一个比较器,这是这个类吗?第一种方式你是可以写一个去实现这个接口,第二种方式你可以单独写个类,下面写个比较器,然后接下来你在这在用的时候,对吧?哎。你可以这样用,怎么用啊,来tree set呗,里边存B类型betra是不是,哎,New一个tree set啊new出来,然后接下来当你btra扭出来之后,哎,你这块你要注意给它传个比较器,这个比较器是B比较器,你把B比较器扭出来呗,对吧,给它传进去是不是啊,然后呢,接下来我们再往下。
14:23
我们就可以怎么着啊,调用我们btra的一个方法叫I呗6B呗。是不是,哎,你往里放点东西啊,哎,走走走走走是不是,哎,那这边是100,这边是200对吧,这是600对吧,这是300是不是,哎,这是50,那这个时候呢,你看看你扭出来把里边加进去,对它进行分循环,循环BB,然后btra呗,是吧,来输出这个BB呢,To方法已经重写了。那重写的方法那就好说呀,对吧,我们看看这个排序不排序对吧,你再输出一下。自定义的类型对不对,你看B这块是不是也是排序的,从小到大排序的。
15:04
是吧,啊,你顺便你再测一测这个匿名内不类是不是匿名内不类怎么怎么怎么做,New一个什么呀?New competor是不是啊,New competor呗,New谁呀competitor。是不是走你看这边谁呀,叫O一点什么呀,O1.i对不对,减去什么呀,o2.i是不是,哎你匿名内部类的方式,你顺手测一下是不是匿名啊内部类方式对吧,那这块的话你就不用再写这个了,这个就注释掉就行了,对吧,你就直接执行对吧。测试完了。嗯。对吧,也可以呀,是吧?哎,所以说这块的话,你再往下测试这个自定义类型,然后再往下的话,你需要再往下测试什么,测试一下这个实现。测试实现什么呀?Comparable接口的方式。啊,再往下你需要测一什么呀,哎,测试实现什么呀,叫comp接口的方式啊,最好最好最好最好测试一下什么呀,匿名内部类。
16:12
的方式啊,这,这就是吹赛集合这一块,你要掌握的东西就这些。我这一个例子就把这概括了。这样的话,你这个就相当于a link哈赛和赛就全搞定了。那你哈赛的吹赛搞定了,那哈麦吹麦就不用看了。你干啥呀?是不是因为这个就是哈希map,这个吹就是吹map。只不过你往哈赛里边放是放到放到ma机K部分了,你往吹赛里边放是放到吹ma机和部分了。对吧,啊就是这样嘛,是不是,那大家呢,可能在这磨叽磨叽磨叽一晚上,那在那哎不知道干啥是不是,那题也不会做,完了之后你看我,我看你完了之后就在这干啥呢。就在这看数据结构,你看它有什么用。是不是你现在可能还没有达到那个级别,你就先不要去理解那些东西,但是课堂上我们该讲可能还得讲一下,你不要因为说这两天好像看语言版看的好像看看的好像很浮躁,就好像自己啥都不会的一样,这个东西是源码呀,就该说可能还是得说,你说你会不会呢?这个可能也不太会,不太会我觉得关系也不大,你呢,下一周得自己测。
17:21
自己写程序测一下对吧,你说你写,你看现在写三个例子基本上测完了。整个集合里边东西宽差不多测测完了。
我来说两句