清空一个列表并将其元素添加到另一个列表中

4
我正在编写一个程序,它的参数是多个句子。我创建了两个列表,一个名为“propozitie”,其中包含每个句子,另一个名为“propozitii”,其中包含所有句子。
问题在于:当我在遇到“.”后清空“propozitie”列表时,它也会清空“propozitii”列表,最终导致打印出三个空列表。
输入数据:

Andrei去那里。Andrei踢足球。我喜欢呆在家里。

请问有谁能帮助我吗?先感谢您的帮助。
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);

}
}
1个回答

4

这是因为,语句

propozitii.add(propozitie);

将propozitie的引用添加到propozitii列表中,没有添加对象的副本。如果要复制,请使用以下方式。

propozitii.add(new ArrayList<String>(propozitie));

现在,您可以清除propozitie


太好了。如果您接受有效的答案,将有助于社区。其他人可能会尝试跳过问题或阅读已回答的问题以提供更好的答案! - Deva

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接