java - 数组列表的重复条目

标签 java arraylist multidimensional-array

我不想将新项目添加到现有列表中,而是想为新项目创建一个新列表。例如,

最终输出:[[情况1,这是方法A],[情况2,这是方法A]]

但是,我的代码输出是

最终输出:[[case1,这是方法 A,case2,这是方法 A],[case1,这是方法 A,case2,这是方法 A]]

我不太确定我哪里出错了。 任何帮助将不胜感激!谢谢!

下面是我的代码。

   static List<List<String>> list = new ArrayList<>();

    static ArrayList<String> temp = new ArrayList<>();

    public static void main(String[] args) {
        for (int q = 1; q < 3; q++) {
            switch (q) {
            case 1:
                temp.add("case1");
                methodA();
                list.add(temp);
                break;

            case 2:
                temp.add("case2");
                methodA();
                list.add(temp);
                break;
            }
        }
        System.out.println("FINAL OUTPUT:" + list);
    }

    private static void methodA() {
        temp.add("this is method A");
    } 

最佳答案

由于 clear() 影响已添加到最终结果(在上一次迭代中)的列表,因此您必须在清除它 (2) 之前制作一个副本 (1)。

list.add(new ArrayList<>(temp));  // 1
temp.clear();                     // 2

让我们将 3 个重复行移出 switch

switch (q) {
    case 1:
        temp.add("case1");
        break;

    case 2:
        temp.add("case2");
        break;
}
methodA();
list.add(new ArrayList<>(temp));
temp.clear();

关于java - 数组列表的重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51572045/

相关文章:

Android:弹出窗口:尝试完成输入事件但输入事件接收器已被处理

java - 与 jdk indexOf() 相比,GWT 模拟的 indexOf() 不正确

javascript - 检查变量,如果为 false,则创建对象

c++ - 二维数组CUDA问题

php - 从二维数组 PHP 中删除某些索引

java - 现在选择哪个 Java GUI 框架?

java - 错误找不到或加载主类

java - 为什么我收到输入不匹配错误 (Java)

java - Android USB 主机异步批量传输示例

java - 将自定义类与 ArrayLists 一起使用