将迭代值插入scala列表

时间:2013-06-10 09:36:30

标签: scala

var questionList:List[Question]=null
   questionSetQuestionQuestion=questionSetQuestionService.findQuestionSetQuestionByQuestionSetId(id)


   // println(questionSetQuestionQuestion(0))


  for(x<-questionSetQuestionQuestion){
questionList=x.getQuestion()
  }

这里我想将每个getQuestion()值添加到questionList。!

2 个答案:

答案 0 :(得分:3)

在Scala世界中,如果可能的话,应该避免可变性,因此当循环和前置List var工作时,有更多可口的选项。在您的情况下,我会更多地将其视为“我如何从现有的集合中构建新集合?”。采取这种方法,你可以尝试:

val newColl = for(x<-questionSetQuestionQuestion)
  yield x.getQuestion()

或者你可以像这样直接使用map函数:

val newColl = questionSetQuestionQuestion.map(_.getQuestion)

答案 1 :(得分:0)

您需要将其定义为空List,然后附加到

var questionList:List[Question]=List[Question]()
questionSetQuestionQuestion=questionSetQuestionService.findQuestionSetQuestionByQuestionSetId(id)

for(x<-questionSetQuestionQuestion){
questionList=x.getQuestion() :: questionList
}

PS:我会推荐Martin Odersky在Coursera上的讲座(课程:Scala中的函数编程),其中解释了大多数数据结构的一般用法