1.创建和更新数组的不同方式 1)定义一个数组的初始大小和类型,随后填充值. scala> val array = new Array[String](3) array: Array[String] = Array(null, null, null) scala> array(0) = "abc" scala> array(1) = "def" scala> array(2) = "hij" scala> array…
1.List列表的创建和添加元素 1)最常见的创建list的方式之一. scala> val list = 1 :: 2 :: 3 :: Nil list: List[Int] = List(1, 2, 3) 2)最常见的创建list的方式之一. scala> val list = List(1,2,3) list: List[Int] = List(1, 2, 3) 3)集合混合类型组成. scala> val list = List(1,2.0,33D,4000L) list: Li…
1.创建映射 1)创建不可变的映射 scala> val status = Map(1 -> "a",2 -> "b") status: scala.collection.immutable.Map[Int,String] = Map(1 -> a, 2 -> b) scala> val status = Map((1,"a"),(2,"b")) status: scala.collecti…
一.在使用scala集合时有几个概念必须知道: 1.谓词是什么? 谓词就是一个方法,一个函数或者一个匿名函数,接受一个或多个函数,返回一个Boolean值. 例如:下面方法返回true或者false,所以它是一个谓词. scala> def isEven(i: Int) = if(i % 2 ==0) true else false isEven: (i: Int)Boolean 2.匿名函数是什么? 匿名函数也被称作函数自变量,作为变量传入把函数作为参数的方法中,或者赋值给一个变量. scal…
遍历集合的方法 1.用foreach循环遍历一个集合 foreach接收一个函数作为参数.定义的函数应该接收一个元素作为输入参数,然后不要返回任何的东西.输入的参数的类型应该匹配集合中的类型.随着foreach的执行,它每次都会把一个元素传给你的函数,直到集合中最后一个元素. foreach常用的就是输出信息: scala> val x = Vector(1,2,3) x: scala.collection.immutable.Vector[Int] = Vector(1, 2, 3) scal…
一.常用的集合方法 1.可遍历集合的常用方法 下表列出了Traverable在所有集合常用的方法.接下来的符号: c代表一个集合 f代表一个函数 p代表一个谓词 n代表一个数字 op代表一个简单的操作(通常是一个简单的函数) 2.可变的集合方法 下表里的是可变集合常用的操作符: 3.不可变的集合方法 注意不可变集合不可被修改,所以在第一行的每个表达式的结果必须赋给一个新变量. 操作符 描述 c1 ++ c2 把c2集合的元素附加到c1里创造一个新的集合 scala> val c1 = Vecto…
1.使用队列 队列是一种那个先进先出的队列.1)创建一个队列. scala> import scala.collection.mutable.Queue import scala.collection.mutable.Queue scala> var fruits = Queue[String]() fruits: scala.collection.mutable.Queue[String] = Queue() scala> fruits += "apple" res…
1.给集添加元素 1)用+=.++=和add给可变集添加元素. scala> var set = scala.collection.mutable.Set[Int]() set: scala.collection.mutable.Set[Int] = Set() scala> set += 1 res48: scala.collection.mutable.Set[Int] = Set(1) scala> set += (2,3) res49: scala.collection.muta…
变长数组:数组缓冲 Scala中对于那种长度会变的数组的数据结构为ArrayBuffer. import scala.collection.mutable.ArrayBuffer; // 一个空的数组缓冲,准备存放整数 val array_buffer = ArrayBuffer[Int](); // 或者 new ArrayBuffer[Int] array_buffer += 1; // 结果为:ArrayBuffer(1) // 用+=在尾端添加元素 array_buffer += (1,…
本章主要介绍Scala中的集合类型,主要包括:Array, ListBuffer, Arraybuffer, Set, Map和Tuple. 一.序列 序列类型的对象中包含多个按顺序排列好的元素,可以访问其中特定位置的元素.序列类型主要包括List,Array, ListBuffer, ArrayBuffer . 1.List List在前一章已经介绍过,略. 2.Array 数组在很多编程语言中都会用到.下面代码中包括了如何定义一个Array类型变量,如何在定义Array变量时赋初始值,以及如…
一.集合操作1 1.Scala的集合体系结构 // Scala中的集合体系主要包括:Iterable.Seq.Set.Map.其中Iterable是所有集合trait的根trai.这个结构与Java的集合体系非常相似. // Scala中的集合是分成可变和不可变两类集合的,其中可变集合就是说,集合的元素可以动态修改,而不可变集合的元素在初始化之后,就无法修改了.分别对应scala.collection.mutable和scala.collection.immutable两个包. // Seq下包…
11.1 集合元素的映射-map映射操作 11.1.1 看一个实际需求 要求:请将List(3,5,8)中所有的元素都*2,将其结果放到一个新的集合中返回,即返回一个新的List(6,10,16),请编写程序实现 11.1.2 map映射操作    11.1.3 使用传统方法 -案例演示 object boke_demo01 { def main(args: Array[String]): Unit = { /* 请将List(3,5,8) 中的所有元素都 * 2 , 将其结果放到一个新的集合中…
10.1 数据结构特点 10.1.1 Scala集合基本介绍 uml => 统一建模语言 1) Scala同时支持不可变集合和可变集合,不可变集合可以安全的并发访问 两个主要的包 不可变集合:scala.collection.immutable 可变集合:scala.collection.mutable 2) Scala默认采用不可变集合,对于几乎所有的集合类,Scala都同时提供了可变(mutable)和不可变(immutable)的版本 3) Scala的集合有三大类:序列Seq(有序的,L…
当出现Kafka单个分区数据量很大,但每个分区的数据量很平均的情况时,我们往往采用下面两种方案增加并行度: l  增加Kafka分区数量 l  对拉取过来的数据执行repartition 但是针对这种情况,前者的改动直接影响所有使用消费队列的模型性能,后者则存在一个shuffle的性能消耗.有没有既不会发生shuffle,又能成倍提升性能的方法呢? /* 推荐使用Scala的并行集合: 在上述场景中存在的情况是,单核数据量很大,但是又由于分区数量限制导致多核无法分配到数据.因此如果使用forea…
目录 映射Map 不可变Map 概述 操作实例 可变Map 概述 操作实例 Map的遍历 for循环遍历 格式 操作实例 模式匹配遍历 格式 操作实例 Tuple 元祖 概述 定义格式 获取元素方法 元祖遍历 操作实例 List 列表 不可变List 概述 相关方法 相关操作 操作实例 可变List 概述 相关方法 相关操作 操作实例 Set 集合 格式 特点 相关操作 操作实例 映射Map Map可以分为可变Map和不可变Map,默认情况是不可变Map.两者之间的定义格式完全相同,区别在于导包…
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2 技术爱好者尤其是大数据爱好者 可以加DT大数据梦工厂的qq群 DT大数据梦工厂① :462923555 DT大数据梦工厂②:437123764 DT大数据梦工厂③…
 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy   访问密码 45e2   以下为第37讲List的foldLeft.foldRight.sort操作代码实战 package com.parllay.scala.dataset /** * Created by richard…
在Scala中,Array代表的含义与Java类似,也是长度不可改变的数组.此外,由于Scala与java都是运行在JVM中,双方可以互相调用,因此Scala数组底层实际上是java数组.列如字符串数组java的String[],整数的数组int[]. val a = new Array[Int](10) val a = new Array[String](10) 可以直接使用Array()创建数组,元素类型自动推断 val a = Array("Hello","world&…
一.定长数组 在Scala中,如果你需要一个长度不变的数组,可以使用Array.但需要注意以下两点: 在Scala中使用(index)而不是[index]来访问数组中的元素,因为访问元素,对于Scala来说是方法调用,(index)相当于执行了.apply(index)方法. Scala中的数组与Java中的是等价的,Array[Int]()在虚拟机层面就等价于Java的int[]. // 10个整数的数组,所有元素初始化为0 scala> val nums=new Array[Int](10)…
一.定长数组 在 Scala 中,如果你需要一个长度不变的数组,可以使用 Array.但需要注意以下两点: 在 Scala 中使用 (index) 而不是 [index] 来访问数组中的元素,因为访问元素,对于 Scala 来说是方法调用,(index) 相当于执行了 .apply(index) 方法. Scala 中的数组与 Java 中的是等价的,Array[Int]() 在虚拟机层面就等价于 Java 的 int[]. // 10 个整数的数组,所有元素初始化为 0 scala> val…
1. 定义数组时,没有new和有new是有区别的: scala> val arr3 = Array[Int](2)    此时,arr3中仅包含1个元素2arr3: Array[Int] = Array(2) scala> val arr6 =new Array[Int](2)    如果new,相当于调用了数组的apply方法,直接为数组赋值arr6: Array[Int] = Array(0, 0)     此时,指定该数组类型为Int,则arr6中包含2个元素0,0 scala>…
ArrayList和Vector的区别ArrayList与Vector主要从二方面来说.  一.同步性:   Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的.二.操作:    由于Vector支持多线程操作,所以在性能上就比不上ArrayList了.三.数据增长:       ArrayList和Vector都有一个初始的容量大小,当存储进去它们里面的元素个数超出容量的时候,就需要增加ArrayList和Vector的存储空间,每次增加存储空间的时候…
一.ArrayList和Vector的区别 ArrayList与Vector主要从以下方面来说. 1.同步性: Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的. 2.操作: 由于Vector支持多线程操作,所以在性能上就比不上ArrayList了. 3.数据增长: ArrayList和Vector都有一个初始的容量大小,当存储进去它们里面的元素个数超出容量的时候,就需要增加ArrayList和Vector的存储空间,每次增加存储空间的时候不是只增加一…
ylbtech-Java-杂项:Java数组Array和集合List.Set.Map 1.返回顶部 1. 之前一直分不清楚java中的array,list.同时对set,map,list的用法彻底迷糊,直到看到了这篇文章,讲解的很清楚. 世间上本来没有集合,(只有数组参考C语言)但有人想要,所以有了集合 有人想有可以自动扩展的数组,所以有了List 有的人想有没有重复的数组,所以有了set 有人想有自动排序的组数,所以有了TreeSet,TreeList,Tree** 而几乎有有的集合都是基于数…
今天review代码,看见某些大爷在将泛型为String类型的集合或String类型的数组转化为逗号间隔字符串形式时仍然仅仅顾结果不注重过程,"大爷"咱能负点责任吗? 将泛型为String类型的集合转化为逗号间隔字符串形式: 測试类: package com.ghj.packageofclient; import java.util.ArrayList; import java.util.List; import com.ghj.packageoftool.StringUtils; p…
1.set集合转化Array数组  注意:这个可以使用过滤数组中的重复的元素 你可以先把数组转化为set集合 然后在把这个集合通过Array.from这个方法把集合在转化为数组 var set = new Set([1, 2, 3, 3, 4]);Array.from(set) //输出[1,2,3,4]2.字符串通过Array.from 会被分割成单个字符的数组 Array.from('hello world!');输出:["h", "e", "l&qu…
在C#的List集合操作中,有时候需要将List元素对象拷贝存放到对应的数组Array中,此时就可以使用到List集合的CopyTo方法来实现,CopyTo方法是List集合的扩展方法,共有3个重载方法签名,分别为void CopyTo(T[] array).void CopyTo(T[] array, int arrayIndex).void CopyTo(int index, T[] array, int arrayIndex, int count)等三种形式,此文重点介绍CopyTo的第一…
1.array 和ArrayList的区别? array 数组的长度是固定的,适应不了变化的需求. ArrayList集合的长度可变.大小可变. 2.为什么要用集合,它优点是什么? java是面向对象编程语言,面向对象对事物的描述都是通过对象来体现的. 为了方便对对象操作,必须对这多个对象进行存储.这是就不能是一个基本的变量,应该是一个容器类型的变量. 1)目前学到容器类型变量:StringBuilder.数组 StringBuilder的结果只能是一个字符串类型,不一定满足我们的需求. 2)…
一.本章要点 所有集合都扩展自Iterable特质; 集合有三大类,分别为序列,集和映射; 对于几乎所有集合类,Scala都同时提供可变和不可变的版本; Scala列表要么是空的,要么拥有一头一尾,其中尾部本身是一个列表; 集是无小猴次序的集合; 用LinkedHashSet来保留插入顺序,或者用SortedSet来顺序进行迭代; +将元素添加到无先后次序的集合中;+:和:+向前或向后追加到序列;++将两个集合串接在一起;-和--移除元素; Iterable和Seq特质有数十个用于常见操作的方法…
补充知识:http://www.importnew.com/4543.html 正文开始 scala.collection.immutable scala.collection.mutable 队列Queue val emp = scala.collection.immutable.Queue[Int](); val has1 = emp.enqueue(1) val has123=has1.enqueue(List(2,3)) println(has1) //Queue(1) println(…