Scala基础—集合函数式编程示例(占位符的使用示例)

package com.spark.scala.basics

import scala.collection.mutable

/**
  * 1.scala集合体系中,Iterable是共同的TraitIterable要求继承者实现一些共同的方法,例如对元素的遍历等;
  * 2.Array是基础的数据结构,不从属于scala集合体系
  * 3.scala集合体系中集合分为可变集合与不可变集合,不可变的集合在scala.collection.immutable包中
  * 可变的集合在scala.collection.mutable包中
  * 4.List是元素的列表集合,是不可变的
  * 1)Listhead是第一元素,tail是剩下的元素构成的List集合
  * 2)使用::这个操作符来把List和其他的元素进行组拼,来构建新的List
  * 3)如果集合中没有元素的话,此时为Nil,例如说List中只有一个元素,那么head就是这个元素,tail就会返回Nil
  * 5.LinkedList是元素可修改的
  * 6.Set是元素不可重复的,且元素是无序的,不可变的
  * 7.HashSet是可变的,无序的
  * 8.LinkedHashSet会维护元素插入的顺序
  * 9.SortedSet会自动的把插入的元素进行排序
  */
object Functional_Iterable {
  def main(args: Array[String]): Unit = {
    val range = 1 to 10
    val list = List(1, 2, 3, 4, 5) //伴生对象的apply()
    println(list.head)
    println(list.tail)

    // ::操作
    println(0 :: list)

    //LinkedList
    var linkedList = mutable.LinkedList(1, 2, 3, 4)
    println(linkedList.elem) //第一个元素
    println(linkedList.tail)

    while (linkedList != Nil) {
      println(linkedList.elem)
      linkedList = linkedList.tail
    }

    val copied = linkedList.+:(9)
    println(copied)


    //Set
    val set = Set(1, 2, 3, 4, 5)
    val setMore = set + 6
    println(setMore)

    //hashSet mutable包下
    val hashSet = mutable.HashSet(1, 2, 3)
    hashSet += 5
    hashSet += 50
    println(hashSet)

    //LinkedHashSet
    val linkedHashSet = mutable.LinkedHashSet(1, 2, 3)
    linkedHashSet += 5
    linkedHashSet += 50
    println(linkedHashSet)

    //SortedSet
    val sortedSet = mutable.SortedSet(1, 2, 4, 6, 3)
    println(sortedSet)

    println(List[String]("I am into Spark so much!", "Scala is very powerful").flatMap { x => x.split(" ") }.map {x => (x, 1)}.map(x => x._2).reduce(_+_))
    println(List[String]("I am into Spark so much!", "Scala is very powerful").flatMap { x => x.split(" ") }.map {(_, 1)}.map(_._2).reduce(_+_))
    println(List[String]("I am into Spark so much!", "Scala is very powerful").flatMap { x => x.split(" ") }.map {(_, 1)}.map(_._2).reduce((x, y) => x + y))


    List(1,2,3,4,5).foreach(x => println(x))
    List(1,2,3,4,5).foreach(println(_))
    List(1,2,3,4,5).foreach(println _)
    List(1,2,3,4,5).foreach(println)

  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值