package com.scala.study /** * Created by Administrator on 2016/8/8. */ object Test { def max(x:Int,y:Int):Int={ if(x>y) x else y } /** * 函数只有一条语句时,可以不用花括号{ } * @param x * @param y * @return */ def max2(x:Int,y:Int)=if(x>y) x else y def arrayTest(): Unit ={ val numbers = Array("one","two","three"); for (i<- 0 to 2){ System.out.println(numbers(i)) } } /** * 不同与Java的List,Scala的List一旦创建就不可改变 */ def listTest(): Unit ={ val oneTwo=List(1,2) val threeFour = List(3,4) val oneTwoThreeFour=oneTwo :::threeFour println(""+oneTwo+" and " + threeFour +" were not mutated.") println("Thus,"+oneTwoThreeFour+" is a new List.") } /** * ::把新元素组合到现有列表的最前端,然后作为执行结果返回新的列表 */ def listTest2(): Unit ={ val towThree = List(2,3) val oneTwoThree=1 :: towThree//::是towThree的操作数 println(oneTwoThree)// List(1,2,3) } /** * Nil相当与空的List * 可以使用::操作符把所有元素串起来。然后以Nil结尾,来定义一个新的列表 */ def listTest3(): Unit ={ val oneTwoThree=1 :: 2 :: 3 :: Nil println(oneTwoThree) } /** * 了解List一些方法的用法 */ def listTest4(): Unit ={ val list=List("Tracy","WestBrook","Drunt","James","Kobe") println(list(2))//返回在list列表上索引为2的元素Drunt println(list.count(s => s.length==4))//技术长度为4的String元素个数,1个 println(list.drop(2))//返回去掉前2个元素的list列表 list("Drunt","James","Kobe") println(list.dropRight(2))//返回去掉后两个元素的list列表 list("Tracy","WestBrook","Drunt") println(list.exists(s => s=="Harden"))//判断是否有值为Harden的元素 false println(list.filter(s => s.length==4))//返回长度为4的元素依次组成新列表 list("Kobe") println(list.forall(s => s.endsWith("s")))//判断列表所有的元素是否都以s结尾的 false println(list.foreach(println))//对list列表中的每个字符串执行print语句 println(list.head)//返回List列表的第一个元素,Tracy println(list.init)//返回list列表除去最后一个元素的其他元素所组成的列表 list(Tracy,WestBrook.Drunt,James) println(list.dropRight(1))//以上一个方法的结果相同 println(list.isEmpty)//判断列表是否为空 false println(list.last)//返回list列表的最后一个元素 Kobe println(list.length)//返回列表的元素数量 5 println(list.map(s => s+"y"))//返回由List列表里每一个String元素都加了y list("Tracyy","WestBrooky","Drunty","Jamesy","Kobey") println(list.mkString(","))//返回由列表元素组成的字符串,用,分割 Tracy,WestBrook,Drunt,James,Kobe println(list.reverse)//返回逆序排成的新列表 list("Kobe","James","Drunt","WestBrook","Tracy") } /** * 元组也是不可变,但可以包含不同类型的元素 * 元组的类型取决于它包含的元素数量和元素类型 * 这也是为什么元组不能像List那样list(i)来获取元素了, * List的apply方法始终返回同一个类型,但是Tuple的类型不尽相同 * 用点,下划线,基于1的索引获取元素 */ def tupleTest: Unit ={ val pair =(99,"Luftballons") println(pair._1) println(pair._2) } /** * (1)Set通过类继承的差别,把可变性差异蕴含其中 * (2)Set提供了两个子特质(特质类似Java的Interface),分为可变和不可变 * */ def setTest(): Unit ={ val jetSet=Set("Boeing","Airbus")//默认创建不可变的 val jetSetNew=jetSet+"Lear"//创建并返回包含了新元素的新Set println(jetSetNew.contains("Lear")) } /** * 可变的set需要导入import scala.collection.mutable.Set */ def mutableSetTest(): Unit ={ import scala.collection.mutable.Set var movieSet=Set("Hitch","Poltergeist") movieSet +="Shrek"//可变集把元素加入自身 println(movieSet) } /** * 可变的Map */ def mutableMap(): Unit ={ import scala.collection.mutable.Map var treasureMap = Map[Int,String]() treasureMap += (1 -> "Go to island.") treasureMap += (2 -> "Find big X on ground.") treasureMap += (3 -> "Dig.") println(treasureMap(2))//Find big X on ground } /** * 对于不可变的map,不需要引入相关的Map,因为默认就是不可变的 */ def immutableMap(): Unit ={ val romanNumeral=Map( 1 ->"I",2 ->"II",3 ->"III",4 ->"IV",5 ->"V" ) println(romanNumeral(4))//IV } def main(args: Array[String]): Unit = { immutableMap } }
Scala之Array,List,Tuple,Set,Map
最新推荐文章于 2022-07-26 22:41:17 发布