Scala List 操作 list中最大数的下标 Vector转List
2015-11-27 22:33
344 查看
1.List操作
take takeRight takeWhile
val nums = List(1,1,1,1,4,4,4,4) val left = nums.take(4) //List(1,1,1,1) val right = nums.takeRight(4) //List(4,4,4,4) val headNums = nums.takeWhile(_==nums.head) //List(1,1,1,1)
drop dropRight dropWhile
val nums = List(1,2,3,4,5,6,7,8) val left = nums.drop(3) //List(4,5,6,7,8) val right = nums.dropRight(3) //List(1,2,3,4,5) val tailNums = nums.dropWhile(_==nums.head) //List(2,3,4,5,6,7,8)
indexOf indexWhere
indexOf(‘?’) for a list not workingscala> val lst = List("question?mark") lst: List[String] = List(question?mark) scala> lst.indexOf('?') res2: Int = -1 //列表lst中只有一个元素"question?mark",不等于"?",所以indexOf('?')没找到匹配项,返回-1 //可以用 scala> lst.indexWhere(_.contains("?")) res3:Int = 0 scala> lst(0).indexOf('?') res4: Int = 8 scala> "where is ?".indexOf('?') res5: Int = 9 scala> val lst = List("question?mark","where?","hello","why?") lst: List[String] = List(question?mark, where?, hello, why?) scala> lst.map(_.indexOf('?')) res6: List[Int] = List(8, 5, -1, 3)
2.找出list中最大的数的下标
scala> List(0, 43, 1, 34, 10).zipWithIndex.maxBy(_._1)._2 res0: Int = 1
3.Vector转List
Create list from vector in scala定义一个方法:输入一个Vector,输出一个List,List的元素和Vector的元素相同。
List在Scala中是不可变的(immutable),改变一个List(的长度之类)事实上是yield一个List的新实例。
List的map方法不改变the container,只改变包含的values。
val v = Vector(1,2,3) v:scala.collection.immutable.Vector[Int] = Vector(1,2,3) v.toList res0:List[Int] = List(1,2,3) //或者: List(Vector(1,2,3):_*)
相关文章推荐
- 论文查重
- hdoj--3183--A Magic Lamp(贪心)
- Kafka---如何配置Kafka集群和zookeeper集群
- 第二个Sprint冲刺第五天
- hdoj--3183--A Magic Lamp(贪心)
- Creating and destroying objects
- python中%r和%s的区别
- Spring声明式事务管理(基于xml的方式)
- javascript函数中的匿名函数
- 面试时必须准备的100 个关键问题!
- iOS应用程序短信分享和邮件分享
- nodejs-初探-简单的判定位置是否在市区API
- Redis failover过程
- Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍
- foj 2150 Fire Game(bfs暴力)
- block原理
- 【生活感触】:生活要稳健(只看标题即可)
- 光流检测运动物体
- HDU 1394 Minimum Inversion Number【线段树,归并排序,树状数组】
- LibSVM(java版)的使用