只發(fā)射第N項(xiàng)數(shù)據(jù)
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/elementAt.c.png" alt="elementAt" />
ElementAt操作符獲取原始Observable發(fā)射的數(shù)據(jù)序列指定索引位置的數(shù)據(jù)項(xiàng),然后當(dāng)做自己的唯一數(shù)據(jù)發(fā)射。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/elementAt.png" alt="elementAt" />
RxJava將這個(gè)操作符實(shí)現(xiàn)為elementAt,給它傳遞一個(gè)基于0的索引值,它會(huì)發(fā)射原始Observable數(shù)據(jù)序列對(duì)應(yīng)索引位置的值,如果你傳遞給elementAt的值為5,那么它會(huì)發(fā)射第六項(xiàng)的數(shù)據(jù)。
如果你傳遞的是一個(gè)負(fù)數(shù),或者原始Observable的數(shù)據(jù)項(xiàng)數(shù)小于index+1,將會(huì)拋出一個(gè)IndexOutOfBoundsException異常。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/elementAtOrDefault.png" alt="elementAtOrDefault" />
RxJava還實(shí)現(xiàn)了elementAtOrDefault操作符。與elementAt的區(qū)別是,如果索引值大于數(shù)據(jù)項(xiàng)數(shù),它會(huì)發(fā)射一個(gè)默認(rèn)值(通過(guò)額外的參數(shù)指定),而不是拋出異常。但是如果你傳遞一個(gè)負(fù)數(shù)索引值,它仍然會(huì)拋出一個(gè)IndexOutOfBoundsException異常。
elementAt和elementAtOrDefault默認(rèn)不在任何特定的調(diào)度器上執(zhí)行。