精华内容
下载资源
问答
  • Array ArrayBuffer 将Array转换成已经声明的类型为ArrayBuffer的成员变量,需要使用asInstanceOf进行强制转换 val array = Array[String]("a", "b", "c") println(s"array=$array") val arrayToBuffer = array.to...

    Array 转 ArrayBuffer

    将Array转换成已经声明的类型为ArrayBuffer的成员变量,需要使用asInstanceOf进行强制转换

    val array = Array[String]("a", "b", "c")
    println(s"array=$array")
    val arrayToBuffer = array.toBuffer.asInstanceOf[ArrayBuffer[String]]
    println(s"arrayToBuffer=$arrayToBuffer")
    arrayToBuffer += "qq"
    
    
    结果:
    array: Array[String] = Array(a, b, c)
    array=[Ljava.lang.String;@69779f23
    arrayToBuffer: scala.collection.mutable.ArrayBuffer[String] = ArrayBuffer(a, b, c)
    arrayToBuffer=ArrayBuffer(a, b, c)
    res575: arrayToBuffer.type = ArrayBuffer(a, b, c, qq)
    
    

    ArrayBuffer 转 Array

    var arrayBuffer = ArrayBuffer[String]()
    arrayBuffer += "aaa"
    arrayBuffer += "bbb"
    println(s"arrayBuffer=$arrayBuffer")
    var bufferToArray = arrayBuffer.toArray
    println(s"bufferToArray=$bufferToArray")
    
    结果:
    arrayBuffer: scala.collection.mutable.ArrayBuffer[String] = ArrayBuffer()
    res580: scala.collection.mutable.ArrayBuffer[String] = ArrayBuffer(aaa)
    res581: scala.collection.mutable.ArrayBuffer[String] = ArrayBuffer(aaa, bbb)
    arrayBuffer=ArrayBuffer(aaa, bbb)
    bufferToArray: Array[String] = Array(aaa, bbb)
    bufferToArray=[Ljava.lang.String;@45396680
    

    原文链接:
    https://blog.csdn.net/qq_33446500/article/details/103887933

    展开全文
  • 在浏览器中我们可以使用如下代码将base64转换层二进制数组。function _base64ToArrayBuffer(base64) {var binary_string = window.atob(base64);var len = binary_string.length;var bytes = new Uint8Array( len );...

    在浏览器中我们可以使用如下代码将base64转换层二进制数组。

    function _base64ToArrayBuffer(base64) {

    var binary_string = window.atob(base64);

    var len = binary_string.length;

    var bytes = new Uint8Array( len );

    for (var i = 0; i < len; i++) {

    bytes[i] = binary_string.charCodeAt(i);

    }

    return bytes.buffer;

    }

    如果是小程序中等没有window对象的话就不行了。

    虽然小程序提供wx.base64ToArrayBuffer(base64),但是不知道为什么返回就是空。所以用如下代码来转换。

    var Base64Binary = {

    _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",

    /* will return a Uint8Array type */

    decodeArrayBuffer: function(input) {

    var bytes = (input.length/4) * 3;

    var ab = new ArrayBuffer(bytes);

    this.decode(input, ab);

    return ab;

    },

    removePaddingChars: function(input){

    var lkey = this._keyStr.indexOf(input.charAt(input.length - 1));

    if(lkey == 64){

    return input.substring(0,input.length - 1);

    }

    return input;

    },

    decode: function (input, arrayBuffer) {

    //get last chars to see if are valid

    input = this.removePaddingChars(input);

    input = this.removePaddingChars(input);

    var bytes = parseInt((input.length / 4) * 3, 10);

    var uarray;

    var chr1, chr2, chr3;

    var enc1, enc2, enc3, enc4;

    var i = 0;

    var j = 0;

    if (arrayBuffer)

    uarray = new Uint8Array(arrayBuffer);

    else

    uarray = new Uint8Array(bytes);

    input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

    for (i=0; i

    //get the 3 octects in 4 ascii chars

    enc1 = this._keyStr.indexOf(input.charAt(j++));

    enc2 = this._keyStr.indexOf(input.charAt(j++));

    enc3 = this._keyStr.indexOf(input.charAt(j++));

    enc4 = this._keyStr.indexOf(input.charAt(j++));

    chr1 = (enc1 << 2) | (enc2 >> 4);

    chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);

    chr3 = ((enc3 & 3) << 6) | enc4;

    uarray[i] = chr1;

    if (enc3 != 64) uarray[i+1] = chr2;

    if (enc4 != 64) uarray[i+2] = chr3;

    }

    return uarray;

    }

    var uintArray = Base64Binary.decode(base64_string);

    var byteArray = Base64Binary.decodeArrayBuffer(base64_string);

    展开全文
  • 使用yield和函数式编程转换数组 // 对Array进行转换,获取的还是Array val a = Array(1, 2, 3, 4, 5) val a2 = for (ele <- a) yield ele * ele // 对ArrayBuffer进行转换,获取的还是ArrayBuffer val b =...

    使用yield和函数式编程转换数组

     

    // Array进行转换,获取的还是Array

    val a = Array(1, 2, 3, 4, 5)

    val a2 = for (ele <- a) yield ele * ele

    // ArrayBuffer进行转换,获取的还是ArrayBuffer

    val b = ArrayBuffer[Int]()

    b += (1, 2, 3, 4, 5)

    val b2 = for (ele <- b) yield ele * ele

    // 结合if守卫,仅转换需要的元素

    val a3 = for (ele <- if ele % 2 == 0) yield ele * ele

     

    // 使用函数式编程转换数组(通常使用第一种方式)

    a.filter(_ % 2 == 0).map(2 * _)

    a.filter { _ % 2 == 0 } map { 2 * _}

    转载于:https://www.cnblogs.com/YuanWeiBlogger/p/11432338.html

    展开全文
  • scala数组操作之数组转换

    千次阅读 2018-11-28 00:10:59
    使用yield和函数式编程转换数组   // 对Array进行转换,获取的还是Array  val a = Array(1, 2, 3, 4, 5)  val a2 = for (ele &lt;- a) yield ele * ele  // 对ArrayBuffer进行转换,获取的还是...


    使用yield和函数式编程转换数组
      

      // 对Array进行转换,获取的还是Array
        val a = Array(1, 2, 3, 4, 5)
        val a2 = for (ele <- a) yield ele * ele
        // 对ArrayBuffer进行转换,获取的还是ArrayBuffer
        val b = ArrayBuffer[Int]()
        b += (1, 2, 3, 4, 5)
        val b2 = for (ele <- b) yield ele * ele
        // 结合if守卫,仅转换需要的元素
        val a3 = for (ele <- if ele % 2 == 0) yield ele * ele
    
        // 使用函数式编程转换数组(通常使用第一种方式)
        a.filter(_ % 2 == 0).map(2 * _)
        a.filter { _ % 2 == 0 } map { 2 * _ }

    算法案例:移除第一个负数之后的所有负数
      

      // 构建数组
        val a = ArrayBuffer[Int]()
        a += (1, 2, 3, 4, 5, -1, -3, -5, -9)
    
        // 每发现一个第一个负数之后的负数,就进行移除,性能较差,多次移动数组
        var foundFirstNegative = false
        var arrayLength = a.length
        var index = 0
        while (index < arrayLength) {
          if (a(index) >= 0) {
            index += 1
          } else {
            if (!foundFirstNegative) { foundFirstNegative = true; index += 1 }
            else { a.remove(index); arrayLength -= 1 }
          }
        } 

    算法案例:移除第一个负数之后的所有负数(改良版)
      

      // 重新构建数组
        val a = ArrayBuffer[Int]()
        a += (1, 2, 3, 4, 5, -1, -3, -5, -9)
    
        // 每记录所有不需要移除的元素的索引,稍后一次性移除所有需要移除的元素
        // 性能较高,数组内的元素迁移只要执行一次即可
        var foundFirstNegative = false
        val keepIndexes = for (i <- 0 until a.length if !foundFirstNegative || a(i) >= 0) yield {
          if (a(i) < 0) foundFirstNegative = true
          i
        }
        for (i <- 0 until keepIndexes.length) { a(i) = a(keepIndexes(i)) }
        a.trimEnd(a.length - keepIndexes.length)


     

    展开全文
  • avascript通过ArrayBuffer和DataView实现字节数组和数字之间的相互转换 注意!我这里的所有函数用的都是大端字节序(高位在前,低位在后),即数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存的高...
  • 1. 数组1.1. 定长数组和变长数组package cn.toto.scala//可...import scala.collection.mutable.ArrayBuffer/** * Created by toto on 2017/6/27. */ object ArrayDemo { def main(args: Array[String]): Unit =
  • 1 定长数组和变长数组 定长数组定义格式: val arr = new Array[T](数组长度) 变长数组定义格式: val arr = ArrayBuffer[T]() 注意需要导包:import scala.collection.mutable.ArrayBuffer 代码如下 import...
  • 使用yield和函数式编程转换数组 //对Array进行转换,获取的还是Aarry val a = Array(1,2,3,4,5) val a2 = for(ele <- a) yield ele * ele //对ArrayBuffer进行转换,获取的还是ArrayBuffer val b = ...
  • 对Array进行转换,获取的依旧是Array(需要说明的是,使用yield来转换时,for循环里边遍历的数组它本来是什么类型的,转换出来也是什么类型的,如a是Array,yield转换出来也是Array,b是ArrayBuffer,则yield转化...
  • } ArrayBuffer转Blob var buffer = new ArrayBuffer(32); var blob = new Blob([buffer]); // 注意必须包裹[] 将Blob对象转换成String字符串,使用FileReader的readAsText方法 //将字符串转换成 Blob对象 var blob ...
  • 定长数组定义: val ar = new Array[Int](10) val arr = Array("aa", "bb") 定长数组赋值: ... val ab = new ArrayBuffer[String]() val ab1 = ArrayBuffer[String]() 定长数组增加元素: ab += "aa" ...
  • 使用yield和函数式编程转换数组 // 对Array进行转换,获取的还是Array val a = Array(1, 2, 3, 4, 5) val a2 = for (ele <- a) yield ele * ele a2: Array[Int] = Array(1, 4, 9, 16, 25) // 对ArrayBuffer进行...
  • 使用yield和函数式编程转换数组 1 // 对Array进行转换,获取的还是Array 2 val a = Array(1, 2, 3, 4, 5) 3 val a2 = for (ele <- a) yield ele * ele 4 // 对ArrayBuffer进行转换,获取的还是...
  • ArrayBuffer 遍历Array和ArrayBuffer 数组常见操作 使用yield和函数式编程转换数组 算法案例 移除第一个负数之后的所有负数 移除第一个负数之后的所有负数(改良版) yield Array 在Scala中,Array代表的...
  • 在一次需求中,为了保持后台接口的统一,需要前端将将文件成String作为param的一个参数进行传输,后台接收后将其转换成byte数组存 到数据库的Blob类型的字段中。几经摸索总结出了以下做法。 将二进制0、1数组转换...
  • 众所周知,直接操作二进制数据可以使程序更为高效, 尽管JS对常规数组做了很多优化(JS数组被实现为对象形式),但是不得不承认JS数组的效率一直不高。比如在WebGL中的图像数据传输, 如果使用原生的JS数组, ...
  • scala数组

    2018-08-07 19:35:24
    Array和ArrayBuffer相互转换 遍历数组 数组的常见方法 定长数组 定长数组的定义有种: scala&gt; val arr1 = Array[Int](1,2,3,4) //创建数组并设置具体内容 arr1: Array[Int] = Array(1, 2, 3, 4) scala...
  • JS里的ArrayBuffer 还记得某个晚上在做 canvas 像素级操作,发现存储像素的数据...首先,这个 ArrayBuffer 类型化数组,类型化数组是JavaScript操作二进制数据的一个接口。最初为了满足JavaScript与显卡之间大量...
  • 在开发中,有时候我们将SCala数组转化成Java数组 // scala集合与java集合相互转换 val arr = ArrayBuffer("1","2","3") import scala.collection.javaConversions.bufferAsJavaList val javaArr = new ...
  • JS ArrayBuffer 数据获取与转换

    千次阅读 2020-09-11 12:27:30
    你不能直接操作 ArrayBuffer 的内容,而是要通过类型数组对象或 DataView 对象来操作,它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写缓冲区的内容。 ArrayBuffer - JavaScript | MDN 查看...
  • 首先贴一下Java中集合和数组的概念区别: (1)数组的大小固定,并且元素必须是同一类型;...二、变长数组ArrayBuffer 三、遍历数组 四、原数组基础上运算出新数组 五、数组的常用算法 六、数组转换(scala...
  • 实现方式:js通过FileReader读取文件为ArrayBuffer转Hex进行传输、Java中Hex转为byte数组 1、通过FileReader将文件读取成ArrayBuffer类型 <script> //arraybuffer to hex function buf2hex(buffer) { //...
  • Scala中的数组

    2017-11-14 11:43:00
    数组 数组的两种声明方式,建议声明数组时指定类型。...变长数组ArrayBuffer,能够动态增加元素,也可以实现与Array的互 看代码: 1 import scala.collection.mutable.ArrayBuffer 2 import jav...
  • JS里的ArrayBuffer还记得某个晚上在做 canvas 像素级操作,发现存储像素的...首先,这个 ArrayBuffer 类型化数组,类型化数组是JavaScript操作二进制数据的一个接口。最初为了满足JavaScript与显卡之间大量的、实时...

空空如也

空空如也

1 2 3 4 5 6
收藏数 106
精华内容 42
关键字:

数组转arraybuffer