Scala
杨鑫newlfe
算法就是我的灵魂
展开
-
Scala学习笔记 --- Private和Private[this]以及Protected、Protected[this]
package com1/** * @author yangxin_ryan */class Test56 { private[this] val private_val1:Int = 1 private val private_val2: Int = 2 def method1(param: Test56) = param.private_val1 def method2(param: Test56) = param.private_val2} .原创 2020-05-19 15:22:53 · 727 阅读 · 0 评论 -
Scala学习笔记 --- getter与setter方法
定义不带有priavte的var field, 此时scala生成的面向JVM的类时,会定义为private 的name字段,并提供public的getter和setter方法 如果使用private修饰field,则生成的getter和setter也是private 如果定义val field,则只会生成getter方法 如果不希望生成setter和getter方法,则将field声明为private[this] 调用getter和setter方法,分别叫做fi..原创 2020-05-18 17:12:37 · 641 阅读 · 0 评论 -
Scala实现移除数组中第一个负数之后的所有负数
package com1import scala.collection.mutable.ArrayBuffer/** * @author yangxin_ryan * Scala实现移除数组中第一个负数之后的所有负数 * 版本一 */object Test51 { def main(args: Array[String]): Unit = { val arrBuffer = ArrayBuffer[Int]() arrBuffer += (1, 2.原创 2020-05-14 19:38:12 · 396 阅读 · 0 评论 -
Scala学习笔记 --- 数组操作Array、ArrayBuffer以及遍历数组
一、Array在Scala中,Array代表的含义与Java中类似,也是长度不可改变的数组。此外,由于Scala与Java都是运行在JVM中,双方可以互相调用,因此Scala数组的底层实际上是Java的数组。例如字符串数组在底层就是Java的String[],整个数组在底层就是Java的Int[];数组初始化后,长度就固定下来了,而且元素的全部根据其类型初始化;也可以直接使用Array()创建数组,元素类型自动推断;val a = new Array[Int](10)val.原创 2020-05-13 20:49:58 · 1478 阅读 · 0 评论 -
Scala学习笔记 --- 如何使用变长参数
一、实现函数定义的时候,使用 * 表示参数可变如下例子:/** * 实现变长参数累加函数,for循环版本 * @param nums * @return */ def sum(nums: Int*):Int = { var res = 0 for (num <- nums) res += num res }我们这里定义def sum(nums: Int*):Int =这里的原创 2020-05-12 21:01:33 · 428 阅读 · 0 评论 -
Scala实现九九乘法表
package com1/** * @author yangxin_ryan * 实现九九乘法表 */object MultiplicationTable { def main(args: Array[String]): Unit = { for (i <- 1 to 9) { for (j <- i to 9) { print(i + "*" + j + " = " + i * j + " ") } .原创 2020-05-12 19:01:22 · 2365 阅读 · 0 评论 -
Scala实现单例模式
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务; 一个系统中只能有一个窗口管理器或文件系统; 一个系统只有一个计时工具或ID(序号)生成器; 如果在Windows中就只能打开一个任务管理器;...原创 2020-03-26 00:38:30 · 2416 阅读 · 1 评论 -
Scala的可变集合与不可变集合
一、简述Scala语言中的集合可以分为可变与不可变集合。但是主要来自三个包: scala.collection scala.collection.immutable scala.collection.mutable 可变集合可以在适当的时候被更新或被扩展,这意味着你可以修改,添加,移除一个集合;而不变的集合类,永远不会改变。不过可以模拟改变,新增、移除或者更新...原创 2020-03-25 21:15:48 · 3171 阅读 · 1 评论 -
Spark实现对年级、班级、学生、分数求TopN
最近面试遇到一个问题就是,Spark实现对统计 “年级, 班级, 学生, 分数” 的Top3;除了此外问题还有: 每个班级分数前三名同学的名字以及分数; 各省指标数量前三的市的名字; 测试数据:一年级、一班、yy、99一年级、二班、xx、98二年级、二班、yx、97…我们假如使用:表的字段为:班级、姓名、分数Spark-Core...原创 2020-03-25 16:08:01 · 2510 阅读 · 0 评论 -
Scala实现单链表的反转
class ListNode(value:Int) { val node_v = value // 设置每个节点存储的值 var next:ListNode = null // 设置每个节点的指针}def reverse(l1:ListNode):ListNode = { // 参数l1:...原创 2020-03-25 14:28:35 · 666 阅读 · 0 评论 -
Scala学习笔记 --- 模式匹配&样例类
Scala提供了强大的模式匹配机制,应用也非常广泛。一个模式匹配包含了一系列备选项,每个都开始于关键字case。每个备选项都包含了一个模式及一道多个表达式。箭头符号=>隔开了模式和表达式。match对应Java里的switch,但是写在选择器表达式之后,即:选择器match{备选项}。match表达式通过以代码编写的先后次序尝试每个模式来完成计算,只要发现有一个匹配的case,剩...原创 2019-11-30 21:39:46 · 256 阅读 · 0 评论 -
Scala的类和对象(包含伴生对象、伴生类)
类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用内存。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模版。Scala的类不声明为public,一个scala源文件中可以有多个类。以上的实例类中定义了两个变量x 和 y,一个方法:move,方法没有返回值。Scala的类定义可以有参数,成为类参数。如上面xc,yc...原创 2019-11-29 21:06:22 · 547 阅读 · 0 评论 -
Scala学习笔记 --- 集合
Scala集合分为可变和不可变化的集合。可变的集合可以在适当的地方被更新或扩展。这意味着你可以修改,添加,移除一个集合的元素。而不可变的集合类,相比之下,永远不会变。不过仍然可以模拟添加,移除或更新操作。但是这些操作将在每一种情况下都返回一个新的集合,同时使用原来的集合不发生改变。一、Scala List列表Scala列表List数组,它们所有元素的类型都相同,但是它们也...原创 2019-11-12 22:22:52 · 275 阅读 · 0 评论 -
Scala学习笔记 --- Scala中的柯里化
柯里化的意义:一、提高程序性能,而是使代码模块化,减少耦合增强其可维护性。二、函数的通用性有所降低,但是适用性有所提高。// 没使用语法糖的 sum 函数def sum(f: Int => Int): (Int, Int): Int = { def sumF(a: Int, b: Int): Int = if (a > b) 0 else f(a) ...原创 2019-10-29 01:21:32 · 248 阅读 · 0 评论 -
Scala学习笔记 --- 函数特性
一、传名与传值的区别 传值调用(call-by-value):先计算参数表达式的值,在应用到函数内部; 传名调用(call-by-name):将未计算的参数表达式直接应用到函数内部; 在进入函数内部前,传值调用方式就已经将参数表达式的值计算完毕,而传名调用是在函数内部进行参数表达式的值计算的。这就造成一种现象,每次使用传名调用时,解释器都会计算一次表达式值。二、参数传...原创 2019-10-28 22:03:44 · 226 阅读 · 0 评论 -
Scala学习笔记 ---函数function与方法method的区别
1.函数可以作为参数传入到方法中,而方法不行。package com1/*** @author yangxin_ryan*/object Test14 {/*** 定义一个方法* 方法m1参数要求是一个函数,函数的参数必须是两个Int类型* 返回值的类型也是Int类型* @param f...原创 2019-10-28 21:03:43 · 265 阅读 · 0 评论 -
Scala学习笔记 --- 方法与函数
概念梳理 Scala有方法与函数,二者在语义上的区别很小。Scala方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话说在类中定义的函数即是方法。Scala中的方法跟Java中的类似,方法是组成类的一部分。Scala中的函数则是一个完整的对象,Scala中的函数其实就是继承了Trait的类的对象。Scala中使用val语句可以定义函数,def语句定义方法。...原创 2019-10-28 20:13:58 · 234 阅读 · 0 评论 -
Scala学习笔记 --- Return keyword is redundant.....
最近在写Scala的时候会给出如下的提示,Return keyword is redundant…..,如图:当在函数写上return的时候,会有提示return关键字是多余的?怎么回事呢?整理了一些文章后总结如下: 函数就是纯函数,只做处理 要写函数而不是指令函数式编程的一个重要的概念就是要尽量使代码由无状态的函数构成,而不是给计算...原创 2019-10-28 19:14:54 · 831 阅读 · 0 评论 -
Scala学习笔记 --- for 循环的使用
三种实现循环打印数据package com1object Test8 { def main(args: Array[String]): Unit = { // for 循环包含两端,双闭区间 for (a <- 1 to 10) { println("Value of a: " + a) } // for 循环不含右端,左闭右开 ...原创 2019-10-28 16:21:49 · 288 阅读 · 1 评论 -
Scala学习笔记 --- Scala 访问修饰符
Scala中的修饰符要比Java中更加严格一些: Private 用Private关键字修饰,带有此标记的成员仅在包含了定义的类或对象内部可见,同样的规则还适用内部类。class Outer{ class Inner{ private def f(){println("f")} class InnerMost{ f() // ...原创 2019-10-28 16:14:48 · 226 阅读 · 0 评论 -
Scala学习笔记 --- scala中的数据类型和含义
Scala学习笔记 --- scala中的数据类型和含义原创 2016-12-01 10:55:48 · 566 阅读 · 0 评论 -
Scala学习笔记 --- 闭包理解
Scala学习笔记 --- 闭包理解原创 2016-12-02 20:36:39 · 718 阅读 · 0 评论 -
Scala学习笔记 --- scala中class与object
Scala学习笔记 --- scala中class与object原创 2017-02-09 18:37:06 · 1770 阅读 · 0 评论 -
Scala学习笔记 --- scala中 => 作用
Scala学习笔记 --- scala中 => 作用原创 2017-02-09 19:16:40 · 833 阅读 · 0 评论 -
Scala学习笔记 --- 理解术语面向对象编程和函数式编程
Scala学习笔记 --- 理解术语面向对象编程和函数式编程原创 2017-02-19 23:01:54 · 614 阅读 · 0 评论 -
Spark学习笔记 --- Spark中宽依赖(Wide deps)与窄依赖(Narrow deps)
Spark学习笔记 --- 宽依赖(Wide deps)与窄依赖(Narrow deps)原创 2017-03-08 19:38:42 · 1039 阅读 · 0 评论 -
Spark学习笔记 --- Spark中Map和FlatMap转换的区别
Spark学习笔记 --- Map和FlatMap转换的区别原创 2017-03-08 19:25:32 · 1544 阅读 · 0 评论 -
Spark学习笔记 --- 任务调度的逻辑图
Spark学习笔记 --- 任务调度的逻辑图原创 2017-03-09 15:17:22 · 1291 阅读 · 0 评论 -
Spark学习笔记 --- Stage and Task, Jobs conception
Spark学习笔记 --- Stage and Task, Jobs conception原创 2017-03-09 17:28:28 · 622 阅读 · 0 评论 -
Spark学习笔记 --- 什么是RDD
Spark学习笔记 --- 什么是RDD原创 2017-03-07 11:13:11 · 653 阅读 · 0 评论 -
Spark学习笔记 --- scala实现Spark wordcount例子
Spark学习笔记 --- scala实现Spark wordcount例子原创 2017-03-07 22:57:36 · 1590 阅读 · 0 评论 -
Spark学习笔记 --- SparkStreaming 实现对 TCP 数据源处理
Spark学习笔记 --- SparkStreaming 实现对 TCP 数据源处理原创 2017-03-30 15:58:05 · 1660 阅读 · 0 评论 -
Spark学习笔记 --- SparkStreaming 中基本概念
Spark学习笔记 --- SparkStreaming 中基本概念原创 2017-03-30 17:13:53 · 2207 阅读 · 0 评论 -
Spark学习笔记 --- spark RDD加载文件
Spark学习笔记 --- spark RDD加载文件原创 2017-03-15 09:59:13 · 2021 阅读 · 0 评论 -
Scala学习笔记 --- 空值的表示
Scala学习笔记 --- 空值的表示原创 2017-03-15 11:53:05 · 3484 阅读 · 0 评论 -
Spark学习笔记 --- RDD的创建
Spark学习笔记 --- RDD的创建原创 2017-03-15 14:09:06 · 977 阅读 · 0 评论 -
Scala学习笔记 --- Centos7下安装Scala编译环境
Scala学习笔记 --- Centos7下安装Scala编译环境原创 2017-06-16 16:48:09 · 826 阅读 · 0 评论 -
Scala学习笔记 --- scala命名规范
Scala学习笔记 --- scala命名规范原创 2017-06-16 17:45:23 · 1803 阅读 · 0 评论 -
Flink学习笔记 --- Basic Concepts整理笔记
Flink学习笔记 --- Basic Concepts整理笔记原创 2017-06-30 15:50:59 · 752 阅读 · 0 评论 -
Flink学习笔记 --- scala实现Flink的DataSet Source进行WordCount
Flink学习笔记 --- scala实现Flink的DataSet Source进行WordCount原创 2017-06-30 16:26:13 · 3943 阅读 · 1 评论