大数据技术学习代码记录——Scala

2023-10-27

文章目录

一、Scala

slaca是一种近似java和python的语言
在这里输出一个 * 号的直角三角形来对代码进行对比。
下图是在linux中执行的命令
在这里插入图片描述
下图是 python
在这里插入图片描述

使用流间变量:
流间变量

使用Idea测试Scala
在这里插入图片描述
在这里插入图片描述
测试结果:
测试结果

二、Day01代码记录

2.1、HelloWord.scala

package net.sherry.day01

class HelloWorld {
  def speak(): Unit={
    println("Hello Scala world")
  }
}

2.1.1 TestHelloWorld.scala

package net.sherry.day01

object TestHelloWorld {
  def main(args: Array[String]): Unit = {
    val hello = new HelloWorld() // 创建对象
    hello.speak() //调用方法
  }
}

2.2、ifelse.scala

package net.sherry.day01

object ifelse {
    def main(args: Array[String]): Unit = {
        val age = 20
        val result = if (age >= 18){
            "OK!"
        }else {
            if (age>=12){
                "Wait!"
            }else{
                "No way!"
            }
        }
        println(result)
    }
}

2.3、PrintStudentInfo.scala

package net.sherry.day01

object PrintStudentInfo {
    def main(args: Array[String]): Unit = {
        println("学号:21212121")
        println("姓名:sherry")
        println("性别:男")
        println("专业:大数据技术")
        println("兴趣:旅游、音乐、美食")
        println("梦想:来一场说走就走的旅行")
    }
}

三、Day02代码记录

Example01.scala ——判断语句

package net.sherry.day02

import scala.io.StdIn

object Example01 {
    //    def main(args: Array[String]): Unit = {
    //        print("n = ")
    //        val n = StdIn.readLine.toInt
    //        if (n % 2 == 0)
    //            println(n.toString + "是偶数")
    //        else
    //            println(n.toString + "是奇数")
    //    }
    def main(args: Array[String]): Unit = {
        print("n = ")
        val n = StdIn.readLine.toInt
        val result = if (n % 2 == 0)
            n.toString + "是偶数~"
        else
            n.toString + "是奇数~"

        println(result)

    }
}

Example02.scala ——双重循环

package net.sherry.day02

/**
 * 功能:双重循环
 * 作者:Sherry
 * 日期:2023年02月22日
 */
object Example02 {
    def main(args: Array[String]): Unit = {
        for (i <- 1 to 9){
            for (j <- 1 to i){
                print(i.toString + "*" + j.toString + "=" + (i*j) + "\t")
            }
            println()
        }
    }
}

Example03.scala ——接上一个循环

package net.sherry.day02

object Example03 {
    def main(args: Array[String]): Unit = {
        for (i <- 1 to 9; j <- 1 to i) {
            print(i.toString + "*" + j.toString + "=" + (i * j) + "\t")
            if (i == j) println()

        }
    }
}

Example04.scala ——同上

package net.sherry.day02

object Example04 {
    def main(args: Array[String]): Unit = {
        for (i <- 1 to 9; j <- 1 to i; sep = if (j == i) "\n" else "\t"){
            print(i.toString + "*" + j + "=" + (i*j) + sep)
        }
    }
}

Example05.scala ——同上

package net.sherry.day02

object Example05 {
    def main(args: Array[String]): Unit = {
        val list = for (i <- 1 to 9; j <- 1 to i; sep = if (j == i) "\n" else "\t")
            yield i.toString + "*" + j.toString + "=" + (i * j) + sep
        list.foreach(print)
    }
}

Example06.scala ——消除对角线

package net.sherry.day02

object Example06 {
    def main(args: Array[String]): Unit = {
        for (i <- 1 to 3; j <- 1 to 3; sep = if (j == 3) "\n" else "\t") {
            if (i == j) {
                print("" + sep)
            }
            else{
                print((i * j).toString + sep)
            }
        }
    }
}

Example07.scala ——两循环相乘

package net.sherry.day02

object Example07 {
    def main(args: Array[String]): Unit = {
        for (i <- 1 to 3){
            for (j <- 1 to 3){
                if (i ==3){
                    println()
                }
                else {
                    print((i*j).toString)
                }
            }
        }
    }
}

Example08.scala ——百钱买百鸡

package net.sherry.day02

object Example08 {
    def main(args: Array[String]): Unit = {
        var count = 0
        for (i <- 0 to 20) {
            for (j <- 0 to 33) {
                for (k <- 0 to 300) {
                    if (i + k + j == 100 && i * 5 + j * 3 + k/3 == 100) {
                        count += 1
                        println("公鸡:" + i + "只," + "母鸡:" + j + "只," + "小鸡:" + k + "只")
                    }
                }
            }
        }
        println("总共有" + count + "中购买方式!")
    }
}

Example09.scala ——累加100

package net.sherry.day02

object Example09 {
    def main(args: Array[String]): Unit = {
        var sum = 0
        var i = 1
        while (i<=100){
            sum += i
            i += 1
        }
     println("1+2+3+……+100=" + sum)
    }
}

Example10.scala ——累加100Another

package net.sherry.day02

object Example10 {
    def mx(n: Int, sum: Int): Int = {
        if (n > 0) mx(n - 1, sum + n) else sum
    }


    def main(args: Array[String]): Unit = {
        println("1+2+3+……+100=" + mx(100,0))
    }

}

Example11.scala ——水仙花数

package net.sherry.day02

object Example11 {
    def main(args: Array[String]): Unit = {
        for (n <- 100 to 999){
            var sum = 0
            val num = n.toString
            for (i <- 0 until num.length){
//                println(i)
//                println(num(i))
                sum += (num(i).toInt-48)*(num(i).toInt-48)*(num(i).toInt-48)
//                println(n)
//                println(sum)
            }
            if (n == sum) {
                println(n.toString)
            }
        }
    }

}

Example12.scala ——do……While累加100

package net.sherry.day02

object Example12 {
    def main(args: Array[String]): Unit = {
        var sum = 0
        var i = 1
        do {
            sum += i
            i +=1
        }while (i <= 100)
        println("1+2+3+……+100 = " + sum)
    }

}

Example13.scala ——异常测试

package net.sherry.day02

import java.io.IOException

object Example13 {
    def main(args: Array[String]): Unit = {
        var message = ""
        val result = try {
            mx() //调用方法去抛出异常
            "执行成功!"
        } catch {
            case e: NullPointerException => "空指针异常"
            case e: IOException => "呵呵,I/O异常咯"
            case e: RuntimeException => "运行时候异常"
            case e: Exception => "反正是异常"
        } finally {
            message = "程序到此为止!"
            "无论是否有异常都会执行 finally 里的语句"
        }
        println(message)
        println(result)
    }

    def mx(): Unit = {
        throw new RuntimeException("故意抛出运行时异常~")
    }
}

Example14.scala ——match……case

package net.sherry.day02

import scala.io.StdIn

object Example14 {
    def main(args: Array[String]): Unit = {
        print("输入城市:")
        val city = StdIn.readLine()
        val comment = city match {
            case "北京" => "最伟大的首都"
            case "上海" => "最神奇的魔都"
            case "雅安" => "四面环山的城市"
        }
        println(city + comment)
    }

}

forstr.scala ——功能忘记

package net.sherry.day02

object forstr {
    def main(args: Array[String]): Unit = {
        val a = "internationalization"
        a.indices.foreach(print)
//        print(Character.isDigit("a"))
    }
}

结果
在这里插入图片描述

四、Day05记录

Cat.scala ——类测试

package net.sherry.day05

class Cat private (var name: String, var age: Int){
    def speak(): Unit = println("我叫" + name + ",今年" + age + "岁了~")
}

object Cat {
    def main(args: Array[String]): Unit = {
        val cat = new Cat("加菲", 2)
        cat.speak()
    }
}

Dog.scala ——测试类

package net.sherry.day05

class Dog (var name : String, var age: Int){
    name = "大黄"
    age = 5
    println("主构造方法调用")
    def speak(): Unit = println("我叫" + name + ",今年" + age + "岁了~")
}

object Dog{
    def main(args: Array[String]): Unit = {
        val dog = new Dog("", 0)
        dog.speak()
    }
}

Person.scala ——用户测试类

package net.sherry.day05

// 伴生类
class Person (val name : String, var age: Int = 18) { // 主构造器两个参数
    def speak():Unit = println("我叫" + name + ",今年" + age + "岁了~")
}


// 伴生对象
object Person {
    def main(args: Array[String]): Unit = {
//        基于主构造器创建对象,传入两个参数值
        val person = new Person("余淼")
//        访问构造器参数,其实是访问成员属性
        println("姓名:" + person.name)
        println("年龄:" + person.age)

//        调用对象的方法
        person.speak()

//        修改对象属性(name不能改, age可以改)
        person.age = (21)

//        再次调用对象方法
        person.speak()
    }
}

Student.scala ——学生测试类

package net.sherry.day05

class Student {
    private var name = "老余"
    private var age = 18

    // 定义单参辅助构造器
    def this(name: String) = {
        this() // 调用无惨主构造器
        this.name = name
    }
    def this(name: String, age: Int)={
        this(name) // 调用单参辅助
        this.age = age
    }

    // 重写  toString  方法
    override def toString: String = "我叫" + name + ",今年" + age + "岁了~"
}

object Student {
    def main(args: Array[String]): Unit = {
        // 调用三参辅助构造器实例化
        val student1 = new Student()
        println(student1)
        // 调用三参辅助构造器实例化
        val student2 = new Student("王晓林")
        println(student2)
        // 调用三参辅助构造器实例化
        val student3 = new Student("张智霖", 21)
        println(student3)
    }
}

Teacher.scala ——教师测试类

package net.sherry.day05

/**
 * 功能:教师类
 * 作者:Sherry
 * 日期:2023年03月22日
 */
class Teacher (private var name: String, private var age: Int){ // 双参主构造器
    private var gender = ""

    // 三参辅助构造器
    def this(name: String, age: Int, gender: String) = {
        this(name, age) // 调用双参主构造器
        this.gender = gender
    }

    // 重写toString方法
    override def toString: String = "我叫" + name + "," + gender + ",今年" + age + "岁了~"
}

// 伴生对象
object Teacher {
    def main(args: Array[String]): Unit = {
        // 调用三参辅助构造器实例化
        val teacher = new Teacher("Sherry", 20, "男")
        println(teacher)
    }
}

五、Day06代码记录

Person.scala ——用户类

package net.sherry.day06

/**
 * 功能:抽象人类
 * 作者:sherry
 * 日期:2023年03月16日
 */
abstract class Person {
    var name: String // 抽象字段
    var age: Int // 抽象字段
    var address: String = "雅安市雨城区县前街88号" // 普通字段

    // 抽象方法
    def speak()

    // 普通方法
    def walk(): Unit = {
        println(name + "在散步~")
    }
}

Teacher.scala ——教师方法类

package net.sherry.day06

class Teacher extends Person {
    var name: String = "余淼"
    var age: Int = 20

    // 实现抽象方法,不用家 override
    def speak(): Unit = {
        println("我叫" + name + ",今年" + age + "岁,家住" + address + ",擅长吃喝玩乐~" )
    }

    // 重写普通方法,必须加override
    override def walk(): Unit = {
        println("教师" + name + "喜欢雨中漫步~")
    }
}

TestTeacher.scala ——教师测试类

package net.sherry.day06

object TestTeacher {
    def main(args: Array[String]): Unit = {
       val teacher=  new Teacher()

        //调用
        teacher.speak()
        teacher.walk()
    }
}

Bird.scala ——鸟类

package net.sherry.day07

class Bird extends Pet with Runnable with Flyable {
    var name: String = "杜鹃"
    var age: Int = 5

    def speak: Unit = {
        println("我叫" + name + ",今年" + age + "岁了~")
    }

    def run: Unit = {
        println("鸟儿[" + name + "]在欢快地奔跑~")
    }

    def fly: Unit = {
        println("鸟儿[" + name + "]在自由地飞翔~")
    }
}

// 伴生对象
object Bird {
    def main(args: Array[String]): Unit = {
        // 创建鸟对象
        val bird = new Bird()
        // 调用对象方法
        bird.speak
        bird.run
        bird.fly
    }
}

Cat.scala ——猫类

package net.sherry.day07

/**
 * 功能:猫类
 * 作者:华卫
 * 日期:2023年03月16日
 */
class Cat extends Pet {
    // 实现抽象字段
    var name: String = "虎丸"
    var age: Int = 3

    // 实现抽象方法
    def speak: Unit = {
        println("我叫" + name + ",今年" + age + "岁了~")
    }

    // 重写普通方法
    override def eat: Unit = {
        println(name + "在吃鱼虾~")
    }
}

// 伴生对象
object Cat {
    def main(args: Array[String]): Unit = {
        // 创建猫对象
        val cat = new Cat()
        // 调用对象方法
        cat.speak
        cat.eat
    }
}

Flyable.scala

package net.sherry.day07

trait Flyable {
    def fly
}

Pet.scala

package net.sherry.day07

/**
 * 功能:宠物特质
 * 作者:华卫
 * 日期:2023年03月16日
 */
trait Pet {
    // 抽象字段
    var name: String
    var age: Int
    // 抽象方法
    def speak
    // 普通方法
    def eat: Unit = {
        print(name + "在吃东西~")
    }
}

Runnable.scala

package net.sherry.day07

trait Runnable {
    // 抽象方法
    def run
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大数据技术学习代码记录——Scala 的相关文章

随机推荐

  • 一篇文章学懂ADB命令和Monkey命令

    一篇文章学懂ADB命令和Monkey命令 1 adb命令 1 1 查看连接设备 1 2 查看adb版本 1 3 查看手机当前启动App的应用名和包名 1 4 使用aapt使用aapt 查看app的包名和启动名 查看app的包名和启动名 1
  • Element框架更换主题色

    Element 默认的主题色是鲜艳 友好的蓝色 但是UI小姐姐在设计的时候会为了更贴合项目主旨设计出其他颜色的主题色 比如新能源项目一般选用绿色做为主题色 此时我们就需要更改Element框架的主题色 一开始博主的想法是全局修改框架默认样式
  • JDBC连接各种数据库

    ConnectHSQLDB java Java代码 ConnectHSQLDB java package com javaworkspace connecthsqldb import java sql Connection import j
  • /usr/lib64/sa/sa2脚本解释

    文章目录 前言 脚本原文 脚本解释 前言 usr lib64 sa sa1脚本和 usr lib64 sa sa2脚本都是Linux 系统上的 sysstat 工具的一部分 在 etc cron d sysstat这个定时任务下执行 用来收
  • arm+linux swap出错问题

    今天 程序跑了两个小时 忽然出现如下信息 swap dup Bad swap file entry 002fdf80 VM killing process intrusion test swap free Bad swap file ent
  • Android-S模拟器

    0 前言 参考资料 1 基于Android P对Emulator的使用进行了说明 Android S情况有变 因此撰写本文进行记录 1 编译 根据参考资料 1 的方法编译 aosp x86 64 eng 完成后执行emulator无法正常进
  • 南京美食,为吃遍天下做准备~~

    标点美食地址 1 羊肉泡馍 长白街348号有家 老陕家 面馆 郑和公园北面 肉加馍 2 蓝空饭店 三条巷那边 稻香鸭 红烧老鹅 韭香脆皮鸡 是很好的还有一个叫什么牛肉粒的也好吃昏的了 3 山西炸酱面馆 顺着流行青年广场旁的天桥走到马路对面
  • 【阅读笔记】联邦学习实战——构建公平的大数据交易市场

    联邦学习实战 构建公平的大数据交易市场 前言 1 大数据交易 1 1 数据交易定义 1 2 数据确权 1 3 数据定价 2 基于联邦学习构建新一代大数据交易市场 3 联邦学习激励机制助力数据交易 4 FedCoin支付系统设计 4 1 Po
  • stm32 SystemInit函数详解

    官方固件库中的对应函数为 void SystemInit void Reset the RCC clock configuration to the default reset state for debug purpose Set HSI
  • 终于明白协方差的意义了

    转自 https blog csdn net GoodShot article details 79940438 协方差其意义 度量各个维度偏离其均值的程度 协方差的值如果为正值 则说明两者是正相关的 从协方差可以引出 相关系数 的定义 结
  • 程序员必读书目推荐

    1 Effective Java Joschua 稍许过时 但没有替代java方面的书 2 Effectvie C Scott Meyer 3 More Effective C Scott Meyer的书是非常非常好书 每次读都感到汗颜 自
  • Vue 动态锚点

    这是封装的组件 判断容器的滚动 接收父组件传来的Tab参数
  • Qt Quick里的图形效果——混合(Blend)

    Blend 元素用指定的模式混合两个 Item 在我们使用 QPainter 绘图时 支持 Composition Modes Blend 干的事儿与此类似 使用 Blend 需要 import QtGraphicalEffects 1 0
  • IDEA导入MySQL的jdbc驱动出现“java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver”

    目录 一 一般的解决思路 1 JDBC下载链接 2 选择下载内容 并进行下载 3 将驱动导入java项目 二 依然导入驱动失败怎么办 当我们在idea中使用java操作mysql数据库时会出现 Exception in thread mai
  • 自动驾驶多边形iou计算Shapely库笔记

    参考 https cloud tencent com developer ask 42755 https blog csdn net u014421797 article details 89501572 https www itransl
  • MMDetection= Cuda10.0.130 + Pytorch1.4.0 + torchvision0.5.0 + mmcv-full1.1.6 + mmdet2.5.0

    1 版本选取 MMDetection的版本选择 安装的时候 需要选择合适的版本 下载不同版本的MMDetection 从 Github 的历史版本中选择合适的版本 https github com open mmlab mmdetectio
  • Python之线程编程(Thread)

    线程基本概念 1 什么是线程 1 线程被称为轻量级的进程 2 线程也可以使用计算机多核资源 是多任务编程方式 3 线程是系统分配内核的最小单元 4 线程可以理解为进程的分支任务 2 线程特征 1 一个进程中可以包含多个线程 2 线程也是一个
  • Untiy UDP局域网 异步发送图片

    同步画面有问题 传图片吧 using System Text using System Net Sockets using System Collections using System Collections Generic using
  • WSL2 Ubuntu中apt update命令报错,无法解析域名解决方法

    参考链接 参考链接 1 sudo apt get update失败 在ubuntu16中 当我们输入sudo apt get update会失败 这里有很多原因 1 网络原因 先检查网络好不好用 2 ubuntu16 自带的源不好用 或者有
  • 大数据技术学习代码记录——Scala

    文章目录 一 Scala 二 Day01代码记录 2 1 HelloWord scala 2 1 1 TestHelloWorld scala 2 2 ifelse scala 2 3 PrintStudentInfo scala 三 Da