Java 将数据添加到另一个类的arrayList中

Java 将数据添加到另一个类的arrayList中,java,arraylist,Java,Arraylist,我只是想对arrayList稍微熟悉一点,并做了一个测试程序。我只想将数据添加到另一个类的arrayList中。它说“类型测试中的add(arrayList)方法不适用于参数(String)” 包数组列表; 导入java.util.ArrayList; 导入java.util.List; 公共类数组列表 { 公共静态void main(字符串[]args)引发异常 { ArrayList cityList=新的ArrayList(); //在列表中添加一些城市 测试添加=新测试(); 添加。添加

我只是想对arrayList稍微熟悉一点,并做了一个测试程序。我只想将数据添加到另一个类的arrayList中。它说“类型测试中的add(arrayList)方法不适用于参数(String)”

包数组列表;
导入java.util.ArrayList;
导入java.util.List;
公共类数组列表
{
公共静态void main(字符串[]args)引发异常
{
ArrayList cityList=新的ArrayList();
//在列表中添加一些城市
测试添加=新测试();
添加。添加(“达拉斯”);
系统输出打印(城市列表);
}
}
下面是将数据添加到arrayList的类 包数组列表

import java.util.ArrayList;
import java.util.List;

public class Test 
{
    public final ArrayList<arrayList> floors = new ArrayList<>();

    public void add(arrayList cityName)
    {
    floors.add(cityName);
    }
}
import java.util.ArrayList;
导入java.util.List;
公开课考试
{
公共最终ArrayList楼层=新建ArrayList();
公共无效添加(arrayList cityName)
{
添加(城市名称);
}
}
“型式试验中的方法add(arrayList)不适用于 参数(字符串)”

这仅仅是因为您试图将
字符串
添加到
ArrayList
中,而只需要类型为
ArrayList
的对象

将您的代码更改为“下一步”,以便能够将
字符串
添加到您的列表中:

如果要从类外部创建的列表初始化列表,可以向类
Test
添加构造函数,如下所示:

public List<String> getFloors() {
    return floors;
}
private final List<String> floors;

public Test(List<String> floors) {
    this.floors = floors;
}
私人最终楼层列表;
公共测试(列出楼层){
这个。楼层=楼层;
}

NB:由于您是初学者,我提供了一个简单的答案,但请注意,像上面的构造函数那样直接使用来自类外的列表,或者像上面的getter那样直接返回列表,这不是一个好的做法。一个好的做法是保护你的列表不受外部类的影响,以防止出现bug。如果是构造函数,请复制提供的列表,如果是getter,请返回列表副本或列表的不可修改版本。

问题是什么?@DaveNewton,抱歉,我编辑了它。这是一个编译器错误。您想添加到
floors
数组还是
cityList
数组?我应该如何将其更改为从其他类接收数据的位置?我不确定我是否理解您的问题,请您澄清一下好吗?这只是在测试类中创建一个新的arrayList,而不是我实际的arrayList类,不是吗?您的
ArrayList
Test
中的一个是两个不同的实例,因此不同的列表将集合公开给程序的其余部分以对列表进行更改不是一种好的编程风格。通常只公开迭代器或不可修改列表(“Collections.unmodifiableList(myList)”)。所以OPs添加方法是可以的。
public List<String> getFloors() {
    return floors;
}
private final List<String> floors;

public Test(List<String> floors) {
    this.floors = floors;
}