我可以在一个对象中实现一个数组列表吗<solved>

问题描述 投票:0回答:2

我一直想在Java中制作一个对象,其中包含一个 ArrayList但正如我所期望的那样,当我实现第二个对象时,它没有创建一个新的 ArrayList,而是将现有的日期添加到 ArrayList 当构建所述类型的第一个对象时产生的。

这里是构造函数。

public class OneTest {

   private ArrayList<String> list;

   public OneTest(ArrayList<String> list) {
      this.list = list;
   }
}

主方法建立对象并添加数据。

public static void main(String[] args) {
        ArrayList<String> array = new ArrayList<>();
        array.add("Ben");
        array.add("Bob");

        OneTest test = new OneTest(array);

        ArrayList<String> array1 = new ArrayList<>();
        array.add("111");
        array.add("222");

        OneTest test1 = new OneTest(array1);

        ArrayList<String> testRecovery = test.getList();
        ArrayList<String> testRecovery1 = test1.getList();

        System.out.println(testRecovery.toString());
        System.out.println(testRecovery1.toString());
    }

还有输出。

[]
[Ben, Bob, 111, 222]

我正在寻找一种方法,当我调用toString()方法时,它在一个单独的ArrayList中为每个被构建的对象提供数字。

希望的输出。

[Ben, Bob]
[111, 222]
java class oop arraylist duplicates
2个回答
0
投票

的行中添加现有的日期。

ArrayList<String> array1 = new ArrayList<>();
array.add("111");
array.add("222");

您正在添加 111222arrayarray1 意思是 array1 将是空的。

如果你把它更新为

ArrayList<String> array1 = new ArrayList<>();
array1.add("111");
array1.add("222");

当你以后参考这些列表时,它们应该是你所期望的。


0
投票

你在下面的代码中犯了一个愚蠢的错误。

array.add("111");
array.add("222");

即使在创建第二个 arraylistarray1 的值,你是在之前的 arraylist 只是 array.

你需要把它改成:

array1.add("111");
array1.add("222");


0
投票

发帖时犯了一个相当愚蠢的错误,把所有的都加到array中,没有加到array1中。

© www.soinside.com 2019 - 2024. All rights reserved.