00:00
我们已经了解了scla当中常见的集合类型,那接下来呢,我们就要介绍一下集合的操作了,我们要讲讲讲集合当中常用的一些函数。首先我们要介绍的呢,是。集合中通用的一些基本属性和常用操作,这主要包括集合的长度,集合的大小,诶我们知道有一些集合类型里边有长度,那有一些里边呢,没有长度,但是可以用大小来做一个代替,那另外还有就是可以便利集合当中的所有元素,这就涉及到循环的便利方法,还有迭代器的便利方法啊,另外呢,我们还可以把当前的集合直接转换成字符串,String to string做一个输出。最后还有一个通用的方法就是判断集合当中是否包含某个元素啊,这些操作都非常的简单,所以我们在代码里边做一个。快速的测试,来一个说明。新建一个test object,这11我们现在是通用操作common operation接把这几个要点copy在这里,接下来我们一一的做一个说明,首先这里我们首先要定义一个集合类型啊,我们就以它最为熟悉,也是最简单的list一个说明,呃,我们就随便给一个对应的值。
01:31
一个是获取集合的长度非常的简单,直接list到它的,但是长度嘛,S lengths接掉,可以获取到当前到底有几个元素,那对于有一些集合类型而言,可能是没有LAS这个属性的,比如说我们另外定义一个set,知道对于这个set而言啊。
02:00
里边的数据可能是我们并不关心它到底有多长的,因为它根本就是无距的嘛,没有像这个列表这样的一个特点,那所以我们关心的是它的大小啊,所以在这种情况下呢,那就是可以直接去获取的size,那这个其实关于be,我们同样也可以获取它的size,对吧,有些。数据类型里边我们是直接可以获取到,同时获取到这两个属性的,那有些如果要是获取不到的话,我们一般用size都是可以的,具体来讲我们可以直接点进去看啊,Lengths其实是linear seek optimize下边的一个方法,所以呢,只要是线性的序列,它都可以获取到当前的长度,那既然是只有线性序列才能获取到,那自然当前这个size就获取不到了,对吧?我如果找这个lengths的话,我们会发现根本没有这样的一个属性或者方法,那就只能调用size,而size呢,是。
03:02
啊,Versible ones里边的一个一个方法,哎,那我们自然知道了traversible,这是非常顶层的一个集合类型的,呃,副trade嘛,所以它里面的方法自然是所有集合类型都能掉啊,这是关于这个获取长度大小的一个用法,那下边呢,我们要做的就是集合里边元素的力循环变例,那大家其实是比较熟细的啊,直接可以拟一个循环,一个放推导式,把边的所有数据直接做一个打印就可以了,就是做一个循环遍历,当然我们也可以直接用for each,我们这里可以at,可以做这个for each,这边直接传一个函数,可以把对应的要做的操作定义出来,这都是非常简单的这种使用的过程啊。另外还有这个迭代器的使用,我们这里是分成了两类,其实是差不多的,比方说这里边我们可以直接还是一个放循环element。
04:01
直接用当前list的做一个迭代,或者呢,我们单独把这个迭代器定义出来,用while循环判断它是否has next,这也是可以的啊,所以这个其实译的过程都是非常的类似,我们就不再详细做讲解了。运行一下。然后大家看到这几种情况,前面这个没有做分割啊,前面我们是首先获取了集合长度,这个是六,然后size的这个sat的大小是四,这是我们前面得到的这个结果啊,然后循环便利一三五七二八十九,哎,大家看这个是list的一个便利,然后set,呃,我们定义的这个集合set呢是23 34,四二三七十五这几个数的一个便利,后边呢,迭代器。迭代的便利的又是list,完全是没有任何问题的啊,那最后我们再看一看这个生成字符串,这个大家就更加熟悉了啊,平常其实用这个list,这个list和set而言,我们什么都不用做,直接把它打印,其实就可以看到前生成。
05:11
到这个to string之后的得到的那个效果,所以整体来讲,我们一般情况也不用过多的考虑,这里主要介绍的是,如果我们希望比方说像这个AR瑞啊,AR瑞它本身是to string方法,调的是object里面的图斯string方法,打印出来是那个引用,哎,所以呢,我们得单独的给它做一个转换,或者说调一个其他的方法,这个常见的方法那就是。Make string对吧?哎,MK string所比方说这里边的例子其实也可以叫里边我们甚至可以自定义一些连接的符号啊,我用两个横杠做一个连接,打印一下,我们看一下当前的结果。大家看到如果直接printline的话,这是按照当前的集合类型自己给我们定义的to string方法,把当前的那个头写在前边,小括号跟在后边,所有元素用逗号分割放在里边,这是这种写法。那如果我们用mix string的话,就只是输出所有的元素,中间我们可以自定义分隔符。
06:16
这是关于生成字符串,那最后还有一个就是判断是否包含某个元素啊,这个也非常的简单啊,这在里边当然就是看case啊,这大多数这个集合类型其实都有这样一个方法,我们看到目前这个调的是linear seek optimize的这样的一个方法,那假如说我们that.contain比方说呃,Set里边我们看有一个23对吧,后面这个list里边。又没有23,我们写一个23,那大家其实知道这个返回都应该是一个布尔类型的值嘛,你看这个s like里边也有对应的N方法的定义,他们在不同的。混入的这个特征里边都会有对应的contains的一个判断,所以我们直接调用就可以了,对于大多绝大多数的这个集合类型都可以这么去调啊,当然了,例子里边没有23输出的是false set里边有输出的就是处返回一个布尔类型,这就是关于集合里边比较通用的一些属性和方法。
我来说两句