scala(List)

准在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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值