Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将元素添加到Scala中的Seq[String]_Java_List_Scala_Seq - Fatal编程技术网

Java 将元素添加到Scala中的Seq[String]

Java 将元素添加到Scala中的Seq[String],java,list,scala,seq,Java,List,Scala,Seq,我试图在Scala中创建一个单词列表。我不熟悉这门语言。我读过很多关于如何不能编辑不可变对象的文章,但没有一篇文章能够告诉我如何在Scala中创建所需的列表。我正在使用var初始化,但这没有帮助 var wordList = Seq.empty[String] for (x <- docSample.tokens) { wordList.++(x.word) } println(wordList.isEmpty) var wordList=Seq.empty[字符串] (x几小时

我试图在Scala中创建一个单词列表。我不熟悉这门语言。我读过很多关于如何不能编辑不可变对象的文章,但没有一篇文章能够告诉我如何在Scala中创建所需的列表。我正在使用var初始化,但这没有帮助

var wordList = Seq.empty[String]

for (x <- docSample.tokens) {
  wordList.++(x.word)
}

println(wordList.isEmpty)
var wordList=Seq.empty[字符串]

(x几小时后,我发布了一个问题,一分钟后我就明白了

wordList=(x.word)::wordList


此代码为遇到相同问题的任何人解决此问题。

您可以附加到不可变的
Seq
并通过写入将
var
重新分配给结果

wordList :+= x.word

表达式desugas到
wordList=wordList:+word
的方式与
x+=1
desugas到
x=x+1
的方式相同。您可以使用val,但仍保持单词列表不变,如下所示:

val wordList: Seq[String] = 
  for {
    x <- docSample.tokens     
  } yield x.word

println(wordList.isEmpty)
甚至:

val wordList: Seq[String] = docSample.tokens map (_.word)     

println(wordList.isEmpty)
这将有助于:

wordList = wordList:+(x.word)

听起来你想要的东西像是
val wordList=docSample.tokens.map(u.word)
不需要可变变量。或者
flatMap
,如果
word
恰好是另一个
Seq
。你的帖子不清楚。这里不需要使用可变
var
单词列表。
wordList = wordList:+(x.word)