我正在做一个程序,将更多的句子作为参数。我列出了两个列表,一个包含每个句子的“ 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/

10-10 19:13