scala(List)
  86p06QWQqGRm 2023年11月02日 56 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
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  86p06QWQqGRm   2023年11月02日   57   0   0 BooListscala
86p06QWQqGRm