Scala 基于两个参数筛选列表

Scala 基于两个参数筛选列表,scala,Scala,我想根据scala中的参数筛选列表 case class Student( name:String, age:Int, subjects:List[Subject] ) case class Subject(name:String,id:Int) val sub1=Subject("maths",101) val sub2=Subject("science",102) val sub3=Subject(&

我想根据scala中的参数筛选列表

   case class Student(
   name:String,
   age:Int,
   subjects:List[Subject]
  )
  
  case class Subject(name:String,id:Int)

  val sub1=Subject("maths",101)
  val sub2=Subject("science",102)
  val sub3=Subject("english",103)
  val s1=Student("abc",20,List(sub1,sub2))
  val s2=Student("def",30,List(sub3,sub1))
  val s3=Student("XYZ",40,List(sub3,sub2))

  val sList=List(s1,s2)

 def findSubjectId(sList: List[Student], subject:String) {

 sList.map(student => student.copy(subjects =
    student.subjects.filter(_.name == subject)))
}
  • 参数1-主题

  • 参数2-20岁或30岁

    结果-它应该是可选的

  • 您可以尝试以下方法:

     sList
       .map(student => student.copy(
         subjects = student.subjects
           .filter(_.name == subject)))
       .filter(student => student.age == 20 || student.age == 30)
    

    请分享您尝试过的内容,以及结果。已更新。我无法在2个字段上应用筛选器。您的问题已得到回答?我只在主题上进行了筛选。我想在年龄和主题上进行筛选。您可以在任意字段上链接第二个。filter()。