我正在做一个程序,可以将更多的句子作为参数。我制作了两个列表,一个名为" 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);
}
}
答案 0 :(得分:4)
这是因为声明
propozitii.add(propozitie);
将propozitie的引用添加到propozitii列表中。不添加对象的副本。要复制,请使用此功能。
propozitii.add(new ArrayList<String>(propozitie));
现在您可以清除 propozitie