加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

快学Scala-10--List 和Set

发布时间:2020-12-16 18:51:44 所属栏目:安全 来源:网络整理
导读:1.Scala 的main函数入口 class App{ // scala 的类不支持静态化 def main(args: Array[String]): Unit = { println( " hello " ) }} // class 里面的方法都是非静态的 class Demo01{ def hello01(): Unit = { println( " Hello01 " ) }} // 静态方法都在obje

1.Scala 的main函数入口

class  App{
  //scala 的类不支持静态化
  def main(args: Array[String]): Unit = {
    println("hello")
  }
}
//class 里面的方法都是非静态的
class  Demo01{
  def hello01(): Unit ={
    println("Hello01")
  }
}
//静态方法都在object里面
object  Demo02{
  def hello02(): Unit ={
    println("hello02")
  }
}

如果想一个类里面既想有静态又想有非静态的方法,那么就要写同名的伴生类,如下:

class Demo01{
    def hello01(){
        println("Hello")
    }
}

object Demo01{
    def hello02(){
        println("World")
    }
}

//编译完成就进入一个类里面了,详细查看Demo01.class 文件  使用命令Javap

2.Scala 的List

ArrayList &&?LinkList ?
默认list 的容量有限,不能随便扩容
如果想扩容:
import  scala.collection.mutable.ListBuffer
var arr = Array(1,2,3,4)   //ArrayList array
var list =List(1,4)   //LinkList
Result:
arr: Array[Int] = Array(1,4)
list: List[Int] = List(1,4)
list.head
list.tail
list= list.head::list.tail
Result:
res0: Int = 1   //头
res1: List[Int] = List(2,4)  //尾
list: List[Int] = List(1,4)  //头+ 尾

Demo : 对于list递归求和

var list =List(1,4)  
def listSum(list:List[Int]): Int ={
  if (list == Nil) 0
  else list.head + listSum(list.tail)
}
listSum(list)
Result: 
10

Demo:使用匹配来递归

var list =List(1,4)  
def listSum(list:List[Int]): Int ={
  list match{
    case Nil => 0
    case h::t => h+listSum(t)
  }
}
3.Scala的Set
Set 的最大特点是互异性
当然和List一样,Set也不可变,数值和容量都不可变,需要变得话使用如下
import  scala.collection.mutable.HashSet
Demo:数据的切分和封装 从array 到数据对象
val  rawData = Array("1 tom 22","2 lucy 33","3 lilei 44")
val   data2 = rawData.map(_.split(" "))
case class  User(id:Int,name:String,age:Int)
val users = data2.map( arr => User(arr(0).toInt,arr(1),arr(2).toInt))
----------------------------结果-------------------------------
rawData: Array[String] = Array(1 tom 22,2 lucy 33,3 lilei 44)
data2: Array[Array[String]] = Array([Ljava.lang.String;@3fc49813,[Ljava.lang.String;@76e1d751,[Ljava.lang.String;@32cef447)
defined class User
users: Array[User] = Array(User(1,tom,22),User(2,lucy,33),User(3,lilei,44))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读