3.我们前面的 for 循环有一个 1 to 3 ,就是IndexedSeq下的Vector。 4.String 也是属于IndexeSeq。 5.我们发现经典的数据结构比如Queue和Stack被归属到LinearSeq。 6.大家注意 Scala 中的 Map 体系有一个SortedMap,说明 Scala 的 Map 可以支持排序。 7.IndexSeq和LinearSeq
转换器(Conversion)操作包括toArray,toList,toIterable,toSeq,toIndexedSeq,toStream,toSet,和toMap,它们可以按照某种特定的方法对一个Traversable 容器进行转换。等容器类型已经与所需类型相匹配的时候,所有这些转换器都会不加改变的返回该容器。例如,对一个list使用toList,返回的结果就是list本身。 拷贝(Copying)操作...
println("=== 串行集合 ===") val result: immutable.IndexedSeq[Long] = (1 to 10).map( x => Thread.currentThread.getId ) println(result) *** 结果 *** Vector(1, 1, 1, 1, 1, 1, 1, 1, 1, 1) (2)并行执行 有很多不同的线程在并行执行 println("=== 并行集合 ===") val resu...
Click the link to hear it: voicerecording.org/id/123 case后面还可以加if语句,我们称之为模式守卫。 def showImportantNotification(notification: Notification, importantPeopleInfo: Seq[String]): String = { notification match { case Email(sender, _, _) if importantPeopleInfo.contains(sender) => "Yo...
p<- persons//一个生成器n = p.name//一个定义if(n startsWith "To")//一个过滤器} yield n seq是由“生成器”、“定义”和“过滤器”三条语句组成,以分号隔开,或者放在花括号里让编译器自动推断分号 生成器“p <- persons”的右侧就是一个可迭代的集合对象,把它的每个元素逐一拿出来与左侧的模式进...
("\nStep 5: How to add two HashMaps together using ++")val hashMap4:Map[String,String]=hashMap1++hashMap2println(s"Elements in hashMap4 = $hashMap4")println("\nStep 6: How to remove key and its value from HashMap using -")val hashMap5:Map[String,String]=hashMap4-("CD")...
parrotShelter.addAnimal(newParrot)valparrot:Parrot= parrotShelter.getAnimal println(parrot.speak) } 输出:Woof!Meow!Squawk! 这个示例中,我们定义了一个Animal特质和三个实现了该特质的类:Dog,Cat和Parrot。然后我们定义了一个AnimalShelter类,它使用了泛型类型参数A,并且限制了A必须是Animal的子类型。这样我们就...
// start:前缀 sep:分隔符 end:后缀def mkString(start: String, sep: String, end: String): String = addString(new StringBuilder(), start, sep, end).toString// seq 分隔符def mkString(sep: String): String = mkString("", sep, "")// 如果不指定分隔符 默认使用""分隔def mkString: ...
val values = seqno.map(x => x * x) for ( x <- values ){ println(x ) } // 1 // 4 // 9 } 4.2 简化涨薪策略代码 //定义加薪的规则 def smallPromotion(salaries: List[Double]): List[Double] = salaries.map(salary => salary * 1.2) ...
Scala同时支持可变集合和不可变集合,包含两个包: 可变集合:scala.collection.mutable 不可变集合:scala.collection.immutableScala默认采用不可变集合,对于几乎所有的集合类,Scala都同时提供了可变(mutable)和不可变(immutable)的版本Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展自Iter ...