我正在做一个程序,将更多的句子作为参数。我列出了两个列表,一个包含每个句子的“ propozitie”,另一个包含所有句子的“ propozitii”。
问题是:当我在遇到“。”之后清除“ propozitie”列表时,还清除了“ propozitii”列表,最后打印了3个空列表。
输入数据:
安德烈去那儿。安德烈踢足球。我喜欢待在家里。
有谁能够帮助我 ?
提前致谢。
import java.util.ArrayList;
import java.util.List;
public class Propozitie {
private static List<List<String>> propozitii;
private static List<String> propozitie;
public static void main(String args[]) {
propozitii = new ArrayList<List<String>>();
propozitie = new ArrayList<String>();
for (String arg : args) {
propozitie.add(arg);
if (arg.contains(".")) {
propozitii.add(propozitie);
propozitie.clear();
}
}
System.out.println(propozitii);
}
}
最佳答案
这是因为,该声明propozitii.add(propozitie);
将对propozitie的引用添加到propozitii列表中。没有添加对象的副本。要进行复制,请使用它。propozitii.add(new ArrayList<String>(propozitie));
现在你可以清除propozitie
关于java - 将其元素添加到另一个列表后清除列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33845911/