Scala中List、Map、Set各类型操作汇总

1、Scala中List、Map、Set等各类型函数操作汇总

package com.scala.study

import scala.collection.immutable.{Queue, TreeMap}import scala.collection.mutable

/**  * Created by HP-PC on 2016/5/26.  */

object ScalaCaseDemo {  def main(args: Array[String]): Unit = {    println(1 :: 2 :: List(3, 4)) //单个元素联合List:List(1, 2, 3, 4)    //两个List进行联合成一个List:List(1, 2, 3, 4)    println(List(1, 2) ::: List(3, 4))    println(List("Spark", "Hadoop", "Hive").head) //Spark    println(List("Spark", "Hadoop", "Hive").tail) //List(Hadoop, Hive)    //将List集合拆分成2个List集合:(List(1,2,3),List(4,5,6))    println(List(1, 2, 3, 4, 5, 6).span(_ < 4))    //将List集合中的元素用“—”进行拼接    println(List("a", "b", "c", "d").mkString("_"))    //将List集合元素进行拆分,合并成一个大的List集合    println(List("Spark", "Hadoop").flatMap(_.toList))    //exists判断List集合中是否存在元素,forall是判断整行情况    println(List(List(1, 0, 0), List(0, 1, 0), List(0, 0, 0)).exists(row => row.forall(_ == 0)))

    /**      * foldLeft就是每次计算的结果加上List集合中的元素      * 如:1+0=1,2+1=3,3+3=6,4+6=10,5+10=15,...=5050      */    println((1 to 100).toList.foldLeft(0)(_ + _))

    /**      * foldRight就是每次List集合中的元素减去计算结果      * 如:1-100 = -99,2-(-99) = 101,3-101 = -98,4-(-98) = 102,5-102 = -97      */    println(List(1, 2, 3, 4, 5).foldRight(100)(_ - _))    println(List.apply(1, 2, 3, 4, 5))    println(List("b", "e", "a", "f").sortWith(_ < _)) //List排序输出    println(List.make(3, 5)) //构造List重复元素:List(5,5,5)    println(List.range(1, 5)) //List(1,2,3,4)    println(List.range(1, 9, 3)) //List中的元素是按间隔生成:List(1,4,7)    //拉链操作:List((a,1), (b,2), (c,3), (d,4), (e,5))    val zipped = "abcde".toList zip List(1, 2, 3, 4, 5)    println(zipped)    println(zipped.unzip) //解拉链:(List(a, b, c, d, e),List(1, 2, 3, 4, 5))    //List集合进行合并:List(1, 2, 3, 4, 5)    println(List(List(1, 2), List(3, 4), List(5)).flatten)    //List集合进行合并:List(1, 2, 3, 4, 5)    println(List.concat(List(1, 2), List(3, 4), List(5)))    //两个List按给定的函数进行操作:List(300, 1200)    println(List.map2(List(100, 200), (List(3, 6)))(_ * _))

    val empty = Queue[Int]()    val queue1 = empty.enqueue(1)    val queue2 = queue1.enqueue(List(2, 3, 4, 5))    println(queue2)    val (element, left) = queue2.dequeue    println(element + ":" + left)

    //创建可变Set    val data = mutable.Set.empty[Int]    data ++= List(2, 3, 4)    data += 4 //Set:重复数据不会添加    println(data)    data --= List(2, 3) //移除List集合    println(data)    data.clear() //清空Set集合    println(data)

    //创建可变Map    val map = mutable.Map.empty[String, String]    map("Java") = "Hadoop"    map += {      "Scala" -> "Spark"    }    map += ("Scala" -> "Tachyon") //相同Key,value值覆盖    println(map)    println(map("Java"))    for ((k, v) <- map) println(k + ":" + v)

    //创建treeSet,输出是按升序排序的    val treeSet = mutable.TreeSet(9, 2, 3, 8, 6, 7, 5, 1)    treeSet += 4    println(treeSet)    val treeSetForStr = mutable.TreeSet("Spark", "Hadoop", "Kafka", "Tachyon")    println(treeSetForStr)

    //创建treeMap    val treemap = TreeMap("Scala" -> "Spark", "Java" -> "Hadoop")    println(treemap)  }}
时间: 2024-10-07 08:01:37

Scala中List、Map、Set各类型操作汇总的相关文章

第81讲:Scala中List的构造和类型约束逆变、协变、下界详解

今天来学习一下scala中List的构造和类型约束等内容. 让我们来看一下代码 package scala.learn /** * @author zhang */abstract class Big_Data class Hadoop extends Big_Dataclass Spark extends Big_Data object List_Constructor {  def main(args:Array[String]){    val hadoop = new Hadoop ::

Scala 深入浅出实战经典 第81讲:Scala中List的构造是的类型约束逆变、协变、下界详解

王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-97讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2土豆:http://www.tudou.com/programs/view/ceac2IoB-ik/优酷:http://v.youku.com/v_show/id_

Scala中List的构造是的类型约束逆变、协变、下界详解

学习了Scala中List的构造是的类型约束逆变.协变.下界详解,列表中用::加入父类的对象,列表会协变为父类,例子如下: Def :: [B>:A](x:B):List(B)= New scala:collection.imutable.::(x,this) 王家林亲授<DT大数据梦工厂>大数据实战视频“Scala深入浅出实战经典”视频.音频和PPT下载!第81讲:Scala中List的构造是的类型约束逆变.协变.下界详解腾讯微云:http://url.cn/UNeLA2百度云盘:ht

Scala中的Map和Set

Map和Set中常用的一些方法. var jetset = Set("one","two") jetset += "three" println(jetset.contains("four")) println(jetset.contains("three")) jetset.foreach(arg => println(arg)) print(jetset.size) import scala.co

scala中的map函数与for中的yield

首先我们从scala的函数开始: 在命令后输入:(x:Int) => x * 2 这种奇怪的格式让我们陌生,但是如果你熟悉javascript的函数如下: function myfunc(param){ alert("hello" + param); } 这是一个弹出窗口hello的函数,显示的是hellp+输入参数,这个param不只是可以传入值,也可以传入另外一个函数,为了能够传入另外一个函数作为参数,被传入的函数在写法上要改变一下,比如: var myfunc2 = fun

深入理解Scala中的隐式转换系统

博客核心内容: 1.Scala中的两种隐式转换机制以及隐式视图的定义方式 2.Scala中的隐式绑定可能所处的位置以及如何更好的使用隐式转换 3.Scala中的隐式转换相关操作规则 4.Scala中的隐式参数 5.Scala中的隐式类 6.Scala中的隐式对象 7.Scala中的两种隐式类型约束(结合Scala中的类型系统) 8.Predef类中的implicitly方法的用法介绍以及Ordering类型转化为Oredered类型的方式 1.Scala中的两种隐式转换机制以及隐式视图的定义方式

Scala 中Array,List,Tuple的差别

尽管学了一段时间的Scala了,可是总认为基础不是太扎实,还有非常多的基础知识比較模糊.于是近期又打算又一次学习基础. Scala中的三种集合类型包含:Array,List,Tuple.那么究竟这三种有哪些异同呢?说实话,我之前一直没弄明确,所以今天特意花了点时间学习了一下. 同样点: 1.长度都是固定的,不可变长 2.早期的Scala版本号,Array.List都不能混合类型,仅仅有Tuple能够,2.8版本号以后,3者的元素都能够混合不同的类型(转化为Any类型) 不同点: 1.Array

Scala 中Array,List,Tuple的区别

虽然学了一段时间的Scala了,但是总觉得基础不是太扎实,还有很多的基础知识比较模糊,于是最近又打算重新学习基础. Scala中的三种集合类型包括:Array,List,Tuple.那么到底这三种有哪些异同呢?说实话,我之前一直没弄明白,所以今天特意花了点时间学习了一下. 相同点: 1.长度都是固定的,不可变长 2.早期的Scala版本,Array.List都不能混合类型,只有Tuple可以,2.8版本以后,3者的元素都可以混合不同的类型(转化为Any类型) 不同点: 1.Array 中的元素值

scala 基础六 scala Map和元组的操作

1.Map的介绍 Map(映射)是一种可迭代的键值对(key/value)结构.所有的值都可以通过键来获取.Map 中的键都是唯一的.Map 也叫哈希表(Hash tables).Map 有两种类型,可变与不变,区别在于可变对象可以修改它,而不可变对象不可以.默认情况下 Scala 使用不可变 Map.如果你需要使用可变集合,你需要显式的引入 import scala.collection.mutable.Map 类 2.Map 的分类和定义   //不可变Map    var m1=Map("