這在C/C++中非常簡單,但我想知道Scala中最優雅的方法是什麼?謝謝!在Scala中將List [Short]轉換爲Array [Byte]的最佳方式是什麼?
2
A
回答
2
考慮位移動和屏蔽等操作來提取Scala/Java的高位和低位字節(與C/C++非常相似);讓
val xs = (253 to 257).map(_.toShort).toList
xs: List[Short] = List(253, 254, 255, 256, 257)
等
def upper(x: Short) = ((x >> 8) & 0xFF).toByte
upper: (x: Short)Byte
def lower(x: Short) = (x & 0xFF).toByte
lower: (x: Short)Byte
xs.map(x => (upper(x), lower(x))).toArray
res2: Array[(Byte, Byte)] = List((0,-3), (0,-2), (0,-1), (1,0), (1,1))
其中每個元組收集各Short
值的上部和下部字節。 一種方法來整平以上的元組陣列,
xs.flatMap(x => Array(upper(x), lower(x))).toArray
res3: Array[Byte] = Array(0, -3, 0, -2, 0, -1, 1, 0, 1, 1)
0
這是很容易在斯卡拉的事,其實,你幾乎可以從字面上你的問題轉換成代碼翻譯英語句子。假設你有一個名爲List[Short]
l
:
l.map(_.toByte).toArray
顯然,你需要確保你的所有Short
S IN列表實際上放入一個Byte
,否則你會被截斷的結果。
相關問題
- 1. 將List <MyObject>轉換爲List <IMyInterface>的最佳方式是什麼?
- 2. Java:將ArrayList <Byte>轉換爲byte []的最佳方法是什麼?
- 3. 爲什麼scala將Seq轉換爲List?
- 4. Scala的Java集合:將java.util.list轉換爲scala.immutable.Set的最佳方式是什麼?
- 5. 爲什麼在java中將`char`轉換爲`int`而不是`short`或`byte`?
- 6. 在VB.Net中將MemoryStream轉換爲Byte Array
- 7. 將ByteString轉換爲Int的最佳方式是什麼?
- 8. 將數組轉換爲散列的最佳方式是什麼?
- 9. 將.Net類轉換爲SQLite表的最佳方式是什麼?
- 10. 我需要將org.apache.spark.rdd.RDD [Array [Byte]]轉換爲Spark Streaming中的Array [Byte]
- 11. 將Short轉換爲Byte是怎麼回事?
- 12. 什麼是從String轉換爲HashMap的最佳方式?
- 13. 將MongoDB BasicDBList轉換爲Java short [] Array
- 14. 將html轉換爲postscript的最佳方法是什麼?在java
- 15. 在ASP.NET中將PDF文件轉換爲HTML的最佳方式是什麼?
- 16. 在Julia中將int轉換爲char的最佳方式是什麼?
- 17. 在php中將變量轉換爲布爾值的最佳方式是什麼?
- 18. 在Julia中將Int轉換爲字符串的最佳方式是什麼?
- 19. 在Java中將輸入流轉換爲數組的最佳方式是什麼?
- 20. 在Android中將RectF轉換爲Rect的最佳方式是什麼?
- 21. 在JavaScript中將數字轉換爲字符串的最佳方式是什麼?
- 22. 在Python中將對象轉換爲列表的最佳方式是什麼?
- 23. 在java中將List <Long>對象轉換爲long []數組的最佳方式是什麼?
- 24. Scala庫將數字(Int,Long,Double)轉換爲Array [Byte]
- 25. 將一列中的Array值轉換爲原始DataFrame的列的最佳方式是什麼?
- 26. 將R data.table轉換爲pandas.DataFrame的最佳方法是什麼?
- 27. 將has_many關係轉換爲has_and_belongs_to_many的最佳方法是什麼?
- 28. 將org.json.JSONObject轉換爲javax.sql.rowset.serial.SerialBlob的最佳方法是什麼?
- 29. 將csv轉換爲字符串的最佳方法是什麼?
- 30. 將JSONObject轉換爲域對象的最佳方法是什麼?
'shorts.flatMap(s => List((s >> 8).toByte,s.toByte))。toArray' – jwvh