擁有一個IndexedSeq,如何從末尾迭代到開始?如何反轉Scala中的IndexedSeq?
3
A
回答
9
你可以打電話reverseIterator
如果你只是想從結束到開始遍歷它。如果你想申請一張地圖,reverseMap
。 foldLeft
和foldRight
以相反的方向遍歷,因此每個可以被認爲是反轉列表中的另一個;同樣與reduceRight
和scanRight
。有一堆last
方法來找到接近結束而不是開始的東西。如果您不想在內存中複製集合,則可以使用reverse
(重新創建整個集合)或.view.reverse.whatever
。對於一個簡單的foreach
,reverseIterator
通常會訣竅。
4
你可以將它取反:
scala> val x = IndexedSeq(1,2,3,4)
x: IndexedSeq[Int] = Vector(1, 2, 3, 4)
scala> x.reverse.foreach(println)
4
3
2
1
,或者取決於你在做什麼,而你迭代,一個foldRight
可能是你想要的。 foldRight
是一個摺疊,從右向左移動通過集合。
scala> x.foldRight(0){ (item, total) => println("adding "+item); total + item }
adding 4
adding 3
adding 2
adding 1
res121: Int = 10
+0
謝謝。在查看方法列表時,我不知何故錯過了顯而易見的'reverse'。 – Ivan 2012-03-19 02:35:26
相關問題
- 1. scala sort indexedseq in
- 2. Scala中從Array [T]至IndexedSeq [T]
- 3. 如何在Scala中有效地將IndexedSeq [Byte]轉換爲utf-8字符串
- 4. 如何在scala中反轉地圖?
- 5. 在Scala中將Seq的可變Map轉換爲IndexedSeq的不可變映射
- 6. 如何將Builder方法添加到Scala中的自定義IndexedSeq中?
- 7. Scala的類型推斷:不能推斷IndexedSeq [T]從Array [T]
- 8. 如何在Scala 2.10中反映註釋?
- 9. 如何將Maped集合中的IndexedSeq映射到Scala中不同類型的集合?
- 10. scala中的Java類反射
- 11. 如何反轉?
- 12. 如何將Apache Scala中的Scala UDF轉換爲Java版本?
- 13. 如何在php中反轉
- 14. 在Scala中反轉List [String]中的每個元素
- 15. 如何反轉或反轉鍵值?
- 16. Scala的反射API
- 17. 如何在scala中轉置數據集?
- 18. 如何反轉CSS3轉換?
- 19. scala反射:getDeclaringTrait?
- 20. 查詢Scala中的數字反轉加法
- 21. Scala中嵌套列表的深度反轉
- 22. 如何反轉ArrayList
- 23. 如何反轉numpy.roll?
- 24. 如何反轉QList?
- 25. 在IndexedSeq上實現foldLeft
- 26. 如何反轉LESS中的顏色
- 27. 如何反轉Java中的SingleLinkedList?
- 28. 如何反轉NSMutableArray中的數據?
- 29. 如何反轉xcode中的for()循環?
- 30. 如何反轉0.9中的字符串?
我沒有記得這種方法存在!我很高興當天沒有時間回答問題... :-) – 2012-03-22 01:18:33
@ DanielC.Sobral - 我記得它,因爲我對它一點都不感到失望;我更喜歡我的集合界面的簡單性,而不是使用我能想象的每種便利方法。 – 2012-03-22 04:27:12