‫欢迎回来｡
‫在本视频中, 我们将介绍一个红色名单, 至少是其中的一部分｡
‫让我们从创建一个数组列表开始｡
‫所以我在这里创建一个新的数组列表, 声明它.
‫所以声明一个数组列表｡
‫如您所见, 它在抱怨因为它不知道数组列表
‫我们需要使用系统点集合, 因为数组列表类在集合类中, 如你所见,
‫实现了列表接口等等.
‫现在我可以给它取一个名字, 然后使用它或者称它为我的数组列表是一个新的数组列表.
‫这是声明数组列表的一种方法另一种方法是已经声明了数组列表中应该有多少个对象.
‫所以在这个例子中我会说, 好的, 我的数组列表应该包含100个对象｡
‫这里的这个有一个不确定数量的对象, 这个有一个不确定数量的对象, 而这个有一个确定数量的对象｡
‫具有已定义的｡
‫好了, 现在我们继续, 向数组列表中添加一些对象或元素.
‫所以我的数组列表, 点加｡
‫正如您所看到的, 我的数组列表有多个不同的方法､ 属性和扩展方法｡
‫所以你可以检查其中的一些, 你甚至可以看到像Clear这样的东西, 它只会清除整个数组列表｡
‫那么你有包含｡
‫它会检查是否有你要找的东西等等｡
‫有很多有趣的方法, 我们将讨论其中的一些｡
‫所以我要补充一点｡
‫如你所见, 我可以添加一个对象｡
‫这就是数组列表的好处｡
‫它们不需要只包含字符串, 或者只包含其他任何东西, 它们可以只包含对象｡
‫所以这里可以使用任何类型的对象｡
‫这意味着我们可以在这里存储整数, 比如25,
‫然后我们可以在这里存储字符串, 比如Hello, 或者我们可以在这里存储双精度数｡
‫所以13号｡ 37等等｡
‫所以我在这里添加一些额外的值, 比如13, 我的数组列表, 加上128, 还有一个值是25｡
‫3.
‫这不是逗号｡
‫这是一个点｡
‫好吧, 我会的
‫现在我能做的就是在数组列表上使用一些方法｡
‫例如, 我可以使用remove方法｡
‫在这里, 我需要定义要删除的内容｡
‫所以我不仅仅是删除一个索引, 我还要指定要删除的对象｡
‫比如说我想去掉13, 我就用remove 13.
‫这将从数组列表中删除具有特定条目或具有特定值的元素｡
‫也许这样更好｡
‫所以它要从这里去掉13｡
‫假设我有2乘以13, 我会这样做, 然后它会从我的列表中删除13｡
‫现在, 下一个是删除特定索引处的元素, 因此删除特定位置或索引处的元素｡
‫这是通过使用移除ET的方法来完成的｡
‫您可以看到有一个删除范围｡
‫所以你可以简单地说, 好的, 从这一点上我想删除两个值｡
‫假设从0开始｡ 4.
‫这里, 我想删除两个值｡
‫所以它要删除128和25｡ 3.
‫但我将使用remove ADD, 把位置0的1去掉｡
‫因此, 它应该删除或移除此处的这个｡
‫所以25和现在有一种东西叫计数｡
‫所以如果你想知道你的数组列表中有多少个对象, 你可以使用count关键字｡
‫现在我想把它写在控制台上, 我就这样使用它｡
‫因此写入控制台计数｡
‫好了, 现在让我们来做点有趣的事｡
‫让我们创建一个for each循环, 它将检查数组列表中的所有对象｡
‫在数组列表中, 我将它命名为object或object.
‫它会遍历数组列表中的每一个对象, 它会成为迭代中的对象.
‫我们可以检查对象的类型是否为int, 然后进行一些编码｡
‫假设我想把所有的数字加起来当然我不想在这里加上字符串, 所以我会创建一个新的double结果.
‫或者你可以称之为一些, 也许一些更确切｡
‫这将是总和｡
‫现在我的和应该是数组列表中的整数和双精度数｡
‫但是现在我可以简单地将一个整数加到一个双精度数上, 我需要对它进行转换｡
‫所以我将使用将其转换为双精度｡
‫这里我要说对象, 因为对象是一个对象, 或者对象是一个对象｡
‫它不是整数｡
‫它包含一个整数, 但它的类型是object｡
‫所以我可以把它转换成一个双精度浮点数, 然后简单地把它加到一个双精度浮点数上｡
‫但如果它不是双精度的, 我需要把它转换成双精度的｡
‫所以如果是整数, 我可以把它转换成双精度型.
‫所以我在查｡
‫是整数吗？
‫是的, 是的｡
‫把它转换成一个双精度数, 然后加到和上.
‫如果J是一个双精度数｡
‫如果是这样的话, 那就简单地使用一些加等于｡
‫在这里你不能只说OBJ｡
‫正如你所看到的, 我可以简单地添加一个对象, 这个对象是一个对象, 而不是一个双精度对象｡
‫正如我刚才所说的, 你不能简单地把一个对象加到一个double上｡
‫所以这里需要做的就是使用强制转换｡
‫所以在这里我要把这个对象转换成一个double.
‫如果完成了, 请把它加到总和中, 我就得出了｡
‫当然这里也可以检查J是否是字符串｡
‫因此, 如果是这种情况, 那么只需将其写入控制台｡
‫那就写吧｡
‫好了, 现在我们来编写控制台或者使用控制台来看看结果是什么｡
‫结果并没有大写, 我实际上调用了和, 最后控制台的正确键｡
‫现在开始运行｡
‫如你所见, 我们得到了五个｡
‫我们得到了你好和179｡ 67.
‫那么这些数字是什么？
‫这5是数组列表中元素的数量｡
‫这里写着, 数数, 数到五｡
‫如果我们看看这里有多少个值, 而我们有七个, 一, 二, 三, 四, 五, 六, 七.
‫我们去掉了13, 去掉了0｡
‫现在让我们看看13号是否还在里面｡
‫所以如果我们拿13｡ 37, 我们把128和25相加｡ 3加上13, 如你所见, 得到了这个结果｡
‫所以删除remove 13, 它删除了具有特定值的元素｡
‫因此删除了一个元素, 而不是所有元素, 如您所见｡
‫所以它去掉了13, 只去掉了第一个｡
‫我们复制一下再运行一次｡
‫现在它将删除13两次｡
‫如你所见, 我们得到了166｡
‫所以里面还有13｡
‫如果没有13, 我们再运行一次｡
‫还有｡
‫如你所见, 一切都很好｡
‫所以它试图移除一些东西, 但那什么都不是｡
‫所以如果什么都没有, 正如你所看到的, 它就什么也做不了｡
‫即使我们试了三次删除这个13或删除13, 里面已经没有13了｡
‫好吧, 我会的
‫这是数组列表的一个小开端｡
‫正如你所看到的, 有很多关于数组列表的知识, 它们非常酷｡
‫在下一个视频中, 我们将继续使用ArrayList类的更多方法｡
‫不过, 在此之前, 我想先简单地谈一谈我还没有谈过的事情｡
‫这就是这个物体｡
‫那么为什么我在数组列表中使用object, 而不是, 比如说, 数组列表, 作为数据类型, 或者整型,
‫或者字符串呢？
‫我在这里使用object是因为object是最高级别的｡
‫类中存在的每一个其他类都是以某种方式继承自那个类的对象｡
‫这就是为什么我们可以在这里使用对象, 因为任何不同的数据类型, 将在我的数组列表将与此工作｡
‫因为如果我们看一下数组列表, 这里有一个整数, 这里有一个字符串, 这里有一个双精度数.
‫这里有三种不同的数据类型, 我们不能说, object或者这个对象是整型,
‫或者是字符串或者是双精度型, 因为这是不正确的, 因为这是所有的类型, 对吧？
‫而对象则负责这些｡
‫所以如果我们使用这种方法, 那么它将足够聪明来理解OC, 如果它是一个整数,
‫它将处理这个问题, 并将它加到和上｡
‫否则如果是双精度型的, 它就会加到和上.
‫但如果是字符串, 它就打印出字符串｡
‫好吧, 我会的
‫我只是想确认一下这件事是不是说清楚了｡
‫所以我在视频里加了这段｡
‫如果您有任何其他问题, 您觉得它没有解释得足够好, 那么请让我知道在问答,
‫我会添加一些额外的说明或｡
‫是的, 对讲座的描述｡
‫好吧, 我会的
‫下一段视频再见｡