• 大数据学习——scala数组


    package com
    
    import scala.collection.mutable.ArrayBuffer
    
    /**
      * Created by Administrator on 2019/4/8.
      */
    object TestMap {
    
      def main(args: Array[String]) {
    
        //**定长数组和变长数组*************************************************
        //数组常用方法
    
        val arr = Array(1, 2, 3, 4, 5);
    
        val a1 = arr.map(_ * 10)
        val a2 = arr.filter(_ % 2 != 0)
        println(a2.toBuffer)
    
        //排序
        val arr1 = Array(1, 4, 8, 3, 2, 6, 9, 5)
        //升序
        println(arr1.sorted.toBuffer)
        //降序
        println(arr1.sorted.reverse.toBuffer)
        //升序
        println(arr1.sortWith((x, y) => x < y).toBuffer)
        //降序
        println(arr1.sortWith((x, y) => x > y).toBuffer)
    
    
    
        //注意:如果new,相当于调用了数组的apply方法,直接为数组赋值
        //初始化一个长度为1的定长数组
        val arr2 = Array[Int](10)
        println(arr2.toBuffer)
    
    
        //定义一个长度为3的定长数组
        val arr3 = Array("hadoop", "storm", "spark")
        //使用()来访问元素
        println(arr3(0))
    
        //变长数组(数组缓冲)
        //如果想使用数组缓冲,需要导入scala.collection.mutable.ArrayBuffer包
        var ab = ArrayBuffer[Int]()
        //向数组缓冲的尾部追加一个元素
        //+=尾部追加元素
        ab += 1
        //追加多个元素
        ab +=(2, 3, 4, 5)
        //追加一个数组++=
        ab ++= Array(6, 7)
        //追加一个数组缓冲
        ab ++= ArrayBuffer(8, 9)
    
        //打印数组缓冲ab
        println(ab)
    
        //在数组某个位置插入元素用insert
        ab.insert(0, -1, 0) //在首位插入-1,0两个元素
        println(ab)
        //删除数组某个位置的元素用remove
        ab.remove(8, 2) //从第9位开始删除两个元素
        println(ab)
    
        //**遍历数组**************************************
        //初始化一个数组
        val arr4 = Array(1, 2, 3, 4, 5, 6, 7, 8)
        //增强for循环
        for (i <- arr4)
          println("---" + i)
    
        //好用的until会生成一个Range
        //reverse是将前面生成的Range反转
        for (i <- (0 until arr4.length).reverse)
          println(arr4(i))
    
    
        //**数组转换**************************************
        //yield关键字将原始的数组进行转换会产生一个新的数组,原始的数组不变
    
        val arr5 = for (e <- arr4) yield e * 2
        println(arr5.toBuffer)
        val arr6 = arr4.map(_ * 3)
        println(arr6.toBuffer)
    
        //数组常用算法
    
        println(arr5.sum)
        println(arr5.max)
        println(arr5.sorted.toBuffer)
      }
    
    
    }
  • 相关阅读:
    【LuoguP4156】论战捆竹竿
    各种需要背记的图论知识
    SSD:TensorFlow中的单次多重检测器
    YOLO: 3 步实时目标检测安装运行教程 [你看那条狗,好像一条狗!]
    Tensorflow 基于分层注意网络的文件分类器
    StarSpace是用于高效学习实体向量的通用神经模型
    vrn:基于直接体积回归的单幅图像大姿态三维人脸重建
    TensorFlow官方文档
    Machine Learning From Scratch-从头开始机器学习
    Awesome-Text-Classification:文本分类资源合集
  • 原文地址:https://www.cnblogs.com/feifeicui/p/10955989.html
Copyright © 2020-2023  润新知