这在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. 为什么scala将Seq转换为List?
- 2. 什么是将Double转换为Integer的最佳方式
- 3. 将.Net类转换为SQLite表的最佳方式是什么?
- 4. 将ByteString转换为Int的最佳方式是什么?
- 5. 将Short转换为Byte是怎么回事?
- 6. 什么是从String转换为HashMap的最佳方式?
- 7. 将MongoDB BasicDBList转换为Java short [] Array
- 8. 将html转换为postscript的最佳方法是什么?在java
- 9. 在Android中将RectF转换为Rect的最佳方式是什么?
- 10. 在ASP.NET中将PDF文件转换为HTML的最佳方式是什么?
- 11. 在Java中将输入流转换为数组的最佳方式是什么?
- 12. 在Julia中将Int转换为字符串的最佳方式是什么?
- 13. 在Julia中将int转换为char的最佳方式是什么?
- 14. 在php中将变量转换为布尔值的最佳方式是什么?
- 15. 在JavaScript中将数字转换为字符串的最佳方式是什么?
- 16. 在java中将List <Long>对象转换为long []数组的最佳方式是什么?
- 17. Scala库将数字(Int,Long,Double)转换为Array [Byte]
- 18. 将一列中的Array值转换为原始DataFrame的列的最佳方式是什么?
- 19. 将我的avi文件转换为flv格式的最佳方式是什么?
- 20. 将JSONObject转换为域对象的最佳方法是什么?
- 21. 将R data.table转换为pandas.DataFrame的最佳方法是什么?
- 22. scala Array [Byte] diff
- 23. java将int转换为short
- 24. 如何在Scala中将Array [(Double,Double)]转换为Array [Double]?
- 25. 在scala中编写main的最佳方式是什么?
- 26. 什么是在scala中循环数组的最佳方式
- 27. 将Scala对象写入Parquet的最佳方式是什么?
- 28. 将MYSQL表转储为CSV的最佳方式是什么?
- 29. 在scala中将org.joda.time.LocalDateTime转换为java.time.LocalDateTime的最准确方法是什么?
- 30. 管理Scala中关闭资源的最佳方式是什么?
'shorts.flatMap(s => List((s >> 8).toByte,s.toByte))。toArray' – jwvh