scala(List)

2人阅读 评论(0) 收藏 举报
分类:

准在di

列表过滤:

scala> val info=List("lingang","wangfang","changhua","zhangjin","guanyu")
info: List[String] = List(lingang, wangfang, changhua, zhangjin, guanyu)
/*
e1、count函数原型是:(p: Any => Boolean)Int,将集合中每一个元素放入隐函数计算,并返回集合中满足条件(参数函数返回true)的元素数量 
*/
//使用隐函数计算info集合中元素的字符数为6的元素个数
scala> info.count(s=>6==s.length)
res26: Int = 1
//使用偏函数计算info集合中元素的字符数为6的元素个数
scala> info.count(6==_.length)
res1: Int = 1


/*
e2、exists函数原型是:(p: Any => Boolean)Boolean,只要集合中有一个元素满足条件(参数函数返回true)则exists函数返回true
*/
//判断集合info中是否存在元素的值为changhua的元素
//使用隐函数计算
scala> info.exists(s=>s=="changhua")
res3: Boolean = true
scala> info.exists(s=>s=="changshad")
res4: Boolean = false
//使用偏函数计算
scala> info.exists(_=="changhua")
res6: Boolean = true


/*
e3、forall函数原型是:(p: Any => Boolean)Boolean,集合中所有元素满足条件(参数函数返回true)则exists函数返回true;
该函数与exists函数是互补的,exists函数是描述or的关系,而forall是描述and的关系
*/
//判断集合info中的元素类型是否都是String类型
scala> info.forall(s=>s.getClass().getSimpleName()=="String")
res12: Boolean = true
scala> info.forall(_.getClass().getSimpleName()=="String")
res14: Boolean = true
scala> info.forall(s=>s.getClass().getSimpleName()=="Integer")
res13: Boolean = false
scala> List("lingang","chenghua").forall(_.getClass().getSimpleName()=="String")
res15: Boolean = true
scala> List("lingang","chenghua",50).forall(_.getClass().getSimpleName()=="String")
res16: Boolean = false
scala> List("lingang","chenghua").forall(_.getClass().getName=="java.lang.String")
res17: Boolean = true
scala> List("lingang","chenghua",100).forall(_.getClass().getName=="java.lang.String")
res19: Boolean = false


说明:
在Scala中比较字符串是否相同可以使用双等号,当然你使用equals方法来比较也是OK的:
scala> List("lingang","chenghua").forall(_.getClass().getName.equals("java.lang.String"))
res20: Boolean = true


/*
e4、filter函数原型是:(p: Any => Boolean)List[Any],过滤出满足条件(参数函数返回true)的所有元素并返回这些元素组成的子列表
*/
//过滤出字串长度为6的所有元素组成的子列表
scala> info.filter(s=>s.length==6)
res7: List[String] = List(guanyu)
scala> info.filter(_.length==6)
res9: List[String] = List(guanyu)


/*
e5、map函数原型是:(f: Any => B)(implicit bf: scala.collection.generic.CanBuildFrom[List[Any],B,That])That,将集合中的每一个元素使用map的参数函数处理并收集参数函数处理后的返回值组成的列表
*/
scala> List(10,20,30,40).map(s=>s+5)
res35: List[Int] = List(15, 25, 35, 45)
scala> List(10,20,30,40).map(_+5)
res37: List[Int] = List(15, 25, 35, 45)


/*
e6、foreach函数原型是:(f: Any => U)Unit,将集合中的每一个元素放入参数函数中去并调用参数函数处理,参数函数的返回类型根据参数函数体自动推断,foreach函数无返回值
*/
scala> info.foreach(s=>println(s))
lingang
wangfang
changhua
zhangjin
guanyu
scala> info.foreach(println(_))
lingang
wangfang
changhua
zhangjin
guanyu
查看评论

Scala集合操作—List

Scala常用操作:http://www.yiibai.com/scala/scala_lists.html        Scala中列表是非常类似于数组,这意味着,一个列表的所有元素都具有相同的类...
  • u013514928
  • u013514928
  • 2016-10-11 18:17:46
  • 2036

scala List集合的用法

一、前言: 人们常说,Scala是一个难掌握的语言,一是其面向函数和面向对象结合的原因,二是其丰富的语法和内置函数。 对于Conllection 这一章的内容,更多的是利用内置函数灵活地运用,避免...
  • u010666884
  • u010666884
  • 2016-07-22 17:23:46
  • 22438

scala List和Tuple的用法

使用List 方法不应该有副作用是函数风格编程的一个很重要的理念。方法唯一的效果应该是计算并返回值。用这种方式工作的好处就是方法之间很少纠缠在一起,因此就更加可靠和可重用。另一个好处(静态类型语言里)...
  • yucf1988
  • yucf1988
  • 2011-05-30 10:45:00
  • 7218

大数据学习之Scala中列表(List)的使用学习(5)

在上篇文章当中(http://blog.csdn.net/poison_h/article/details/50456398),我们学习了Scala中的Array,我想新大家对Scala有稍稍的认识了...
  • Poison_H
  • Poison_H
  • 2016-01-07 09:46:32
  • 5765

Scala中Array和List的区别

Difference between Array and List in scala Q:什么时候用Array(Buffer)和List(Buffer)? A: Scala中的List是不可变的递...
  • power0405hf
  • power0405hf
  • 2015-12-09 14:03:49
  • 3983

scala返回List<Object>类型给java

应用场景:scala那边做数据处理,java这边接收返回数据做逻辑处理。现在scala那边需要将得到的数据封装到一个List里面,在java那边创建一个对应Object的javabean,接收传回来的...
  • u013863751
  • u013863751
  • 2017-06-08 11:06:33
  • 786

Scala教程(十二)List操作高级进阶实战

List组成结构:数组由head tail两部分组成:head表示第一个元素,tail表示其它元素。 :::操作符:list与list之间进行连接符::: List的foldLeft、foldRigh...
  • yuan_xw
  • yuan_xw
  • 2015-10-13 16:43:43
  • 2260

scala进阶28-实现List高效遍历

object ListTest { def main(args: Array[String]): Unit = { val list = List(1, 3, 4, 5) incr...
  • dingyuanpu
  • dingyuanpu
  • 2016-08-30 00:50:46
  • 2497

Scala入门到精通——第三节 Array、List

本节主要内容 数组操作实战 列表List操作实战 数组操作实战1 定长数组//定义一个长度为10的数值数组 scala> val numberArray=new Array[Int](10) numb...
  • lovehuangjiaju
  • lovehuangjiaju
  • 2015-07-20 09:05:14
  • 29415

Scala List基本操作

Scala List基本操作。
  • yyywyr
  • yyywyr
  • 2015-12-15 21:01:53
  • 2262
    个人资料
    等级:
    访问量: 198
    积分: 118
    排名: 122万+
    文章存档