如何在Scala中将long数组转换为字节?

Tim*_*mmy 4 scala

我想md5一个Array[Long],所以我想这样做是Array[Byte]因为MD5功能需要一个Array[Byte],我怎么能这样做?

我为此使用了messagedigest.

Tom*_*icz 6

使用ByteBuffer:

val arr = listOfLongs.
  foldLeft(ByteBuffer.allocate(8 * listOfLongs.size)){ (buffer, lon) => 
    buffer putLong lon
  }.array
Run Code Online (Sandbox Code Playgroud)

或者更迫切:

val buffer = ByteBuffer.allocate(8 * listOfLongs.size)
listOfLongs.foreach(buffer putLong _)
val arr = buffer.array
Run Code Online (Sandbox Code Playgroud)

注意:如果您需要little-endian,请致电:

buffer.order(java.nio.ByteOrder.LITTLE_ENDIAN)
Run Code Online (Sandbox Code Playgroud)

在开始.更多灵感:将long转换为byte数组并将其添加到另一个数组.