快学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 的ListArrayList &&?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)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |