第14节:scala编程之集合

package basics

/**
 * 1.在scala集合体系中Iterable是共同的Trait,Iterable要求继承实现一些共同的方法 ,例如对元素的遍历
 * 2.Array是一个非常基础的数据结构,不是从属scala集合的体系
 * 3.scala集合的体系分为可变的集合(在scala.collection.mutable中)和不可变的集合(scala.collection.immutable)
 * 4. List是元素的列表集合,是不可变的
 *    a:head是list中的第一个元素,tail是剩下的元素构成的List集合
 *    b:使用::这操作符来把list和其他的元素进行组拼来构建新的list
 *    c:如果集合中没有元素的话,此时Nil,例如List中只有一个元素那么head就是这个元素本身,tail就会返回Nil
 * 5.LinkedList是可变元素列表 
 * 6.Set是元素不可重复的集合,且元素是无序的,HashSet是可变的,但是元素是无序的,元素不能重复
 * 7.LinkedHashSet会维护元素的插入顺序
 * 8.SortedSet会自动把插入的元素进行排序
 * 
 * 
 * 
 * 
 */
object Fuctionnal_Iteralbe {
  def main(args: Array[String]): Unit = {
    val range=1 to 10
    val list=List(1,2,3,4,5)
    println(list.head)
     println(list.tail)    
      println(0::list)
      
      var linkedlist=scala.collection.mutable.LinkedList(1,2,3,4,5)
      println(linkedlist.elem)//第一元素
      println(linkedlist.tail) 
      
      while (linkedlist!=Nil) {
         println(linkedlist.elem)//第一元素
         linkedlist=linkedlist.tail
      }
       println(linkedlist) //表示linkedlist可以修改
       linkedlist=linkedlist.+:(12)
       println(linkedlist) //表示linkedlist可以修改
      
       
       val set=Set(1,2,3,4,5)
        println(set) 
       val setmore=set+1
        println(setmore) 
       
        val hashset=scala.collection.mutable.HashSet(1,2,3)
        hashset+=5
         hashset+=9
        println(hashset) 
       
        val linkedhashset=scala.collection.mutable.LinkedHashSet(1,2,3)
        linkedhashset+=50
        linkedhashset+=90
        println(linkedhashset) 
       
       val sortedset=scala.collection.mutable.SortedSet(100,2,3)
       sortedset+=50
        sortedset+=90
        println(sortedset) 
       
       //通过空格拆分,并把每个元素计算位1,然后获取第二个元素,然后统计元素个数
       println(List("spark so much","scala is powerful").flatMap{x=>x.split(" ")}.map{x=>(x,1)}.map(x=>x._2).reduce(_+_))
       //如果只有一个输入参数并只使用一次时可以用_代替那个参数
       println(List("spark so much","scala is powerful").flatMap{x=>x.split(" ")}.map{(_,1)}.map(_._2).reduce(_+_))
       println(List("spark so much","scala is powerful").flatMap{x=>x.split(" ")}.map{(_,1)}.map(_._2).reduce((x,y)=>x+y))
       
       List(1,2,3).foreach(x=>println(x))
       List(1,2,3).foreach(println(_))
       List(1,2,3).foreach(println _)
       List(1,2,3).foreach(println)
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值