目录
什么是选代器
选代器是一种迭代器模式的设计模式,它是一个对象,用于遍历容器或集合中的元素。它提供了一种统一的方式来访问集合中的元素,而无需关注底层集合的结构。
选代器可以被用来遍历数组、列表、树等数据结构。它提供了一种简洁的方法来逐个访问元素,并且在迭代过程中可以对容器进行修改。
选代器通常具有两种基本操作:next()和hasNext()。next()方法返回容器中的下一个元素,而hasNext()方法检查是否还有更多的元素可以遍历。
选择使用选代器模式的好处是,它提供了一种通用的方式来遍历不同类型的集合,而不需要了解具体的集合实现。这使得代码更加灵活和可维护,同时也提高了代码的可读性。
为什么要使用选代器
使用选代器的主要目的是为了遍历和访问集合中的元素,尤其是在集合中的元素数量很大的情况下。选代器提供了一种统一的方式来访问不同类型的集合,无论集合的具体实现是什么样的。以下是一些使用选代器的好处:
1.统一的访问方式:选代器提供了一种统一的方式来访问不同类型的集合,无论集合是数组、链表、哈希表还是其他的数据结构。
2.封装迭代逻辑:选代器将迭代集合的逻辑封装在内部,使得用户无需关心具体的迭代实现细节。
3.提供安全的遍历方式:选代器通常会在迭代过程中保证遍历的安全性,避免竞争条件等问题。
4.支持迭代器模式:选代器模式是一种常见的设计模式,将迭代逻辑与集合的具体实现解耦,使得修改集合的结构不会影响到迭代器的实现。
总的来说,使用选代器可以提供一种统一且安全的方式来访问集合中的元素,同时也符合面向对象设计原则中的封装和解耦的思想。
1.基本选择器
1.标签选择器:
p{
color: red;
}
2.类选择器:
text{
color: red;
}
3.ID选择器:
#main-title
{
font-size: 24px;
}
优先级:ID选择器>类选择器>标签选择器
2.高级选择器
1.后代选择器:
后代选择器用于选择指定元素的后代元素。语法是通过空格将两个选择器分开。例如,选择类名为"parent"的元素后代中的类名为"child"的元素
.parent .child {
/* CSS属性 */
}
2.子元素选择器:
子元素选择器用于选择指定元素的直接子元素。语法是通过大于号将两个选择器分开。例如,选择类名为"parent"的元素的直接子元素中的类名为"child"的元素:
.parent > .child {
/* CSS属性 */
}
3.相邻兄弟选择器:
相邻兄弟选择器用于选择指定元素的下一个兄弟元素。语法是通过加号将两个选择器分开。例如,选择类名为"first"的元素的下一个兄弟元素中的类名为"second"的元素:
.first + .second {
/* CSS属性 */
}
4.通用兄弟选择器:
通用兄弟选择器用于选择指定元素之后的所有兄弟元素。语法是通过波浪号将两个选择器分开。例如,选择类名为"first"的元素之后的所有兄弟元素中的类名为"second"的元素:
.first ~ .second {
/* CSS属性 */
}
E F | 后代选择器 | 选择匹配的F元素,且匹配的F元素被包含在匹配的E元素内 |
E>F | 子选择器 | 选择匹配的F元素,且匹配的F元素是匹配的E元素的子元素 |
E+F | 相邻兄弟选择器 | 选择匹配的F元素,且匹配的F元素紧位于匹配的E元素后面 |
E~F | 通用兄弟选择器 | 选择匹配的F元素,且位于匹配的E元素后的所有匹配的F元素 |
3.结构伪类选择器
1.first-child:
ul li:first-child {
color: blue;
}
2.last-child:
ul li:last-child {
color: red;
}
3.nth-child(n):
ul li:nth-child(2) {
color: green;
}
4.nth-of-type(n):
ul li:nth-of-type(odd) {
background-color: lightgray;
}
5.nth-last-child(n):
ul li:nth-last-child(2) {
color: purple;
}
E:first-child | 作为父元素的第一个子元素的元素E |
E:last-child | 作为父元素的最后一个子元素的元素E |
E F:nth-child(n) | 选择父级元素E的第n个子元素F,(n可以是1、2、3),关键字为even、odd |
E:first-of-type | 选择父元素内具有指定类型的第一个E元素 |
E:last-of-type | 选择父元素内具有指定类型的最后一个E元素 |
E F:nth-of-type(n) | 选择父元素内具有指定类型的第n个F元素 |
总结
使用集合选代器可以在遍历集合时进行删除、修改等操作,同时还可以避免使用传统的for循环和索引的方式带来的一些问题,如数组越界、遗漏元素等。因此,在处理集合元素时,使用集合选代器是一种更加方便、灵活的方式。