java - 当我想从文件创建 ArrayList 时,我是否要从文件实例化对象? java

标签 java arraylist instantiation

我们被分配将文本文件转换为几何对象的数组列表。问题是我不知道我是把它转换成ArrayList还是只是实例化一个对象? Eclipse 声称我没有使用过 ArrayList 库

文本文件看起来像这样:

圆形,红色,假,4.0

圆形,蓝色,真实,2.0

圆形,蓝色,真实,10.0

矩形,黄色,true,10.0,6.0

矩形,绿色,true,5.0,11.0

矩形,红色,true,20.0,15.0

到目前为止,我已经用我的代码完成了此操作:

public class Driver {

    public static void main(String[] args) throws FileNotFoundException {

        GeometricObject g = null;
        File diskFile = new File("e:/temp/obj.txt");
        Scanner diskScanner = new Scanner(diskFile);
        while (diskScanner.hasNext()) {
            String list = diskScanner.nextLine();

            g = recreateObject(list);
        }
        diskScanner.close();
    }

    private static GeometricObject recreateObject(String list) {

        String[] data = list.split(",");
        String geoObject = data[0];

        if (geoObject.equals("Circle")) {
            String color = data[1];
            boolean filled = Boolean.valueOf(data[2]);
            double radius = Double.valueOf(data[3]);
            return new Circle(color, filled, radius);
        }

        if (geoObject.equals("Rectangle")) {
            String color = data[1];
            boolean filled = Boolean.valueOf(data[2]);
            double length = Double.valueOf(data[3]);
            double width = Double.valueOf(data[4]);
            return new Rectangle(color, filled, length, width);
        }

        return null;
    }
}

我想将每个 GeometricObject 存储到“ArrayList list = new ArrayList();”中[尚未实现]但我不知道该怎么做。

最佳答案

只需在 while 循环之外声明 ArrayList,然后在循环内添加新对象 g...

List<GeometricObject> geoList = new ArrayList<GeometricObject>();
while(diskScanner.hasNext()){
    String list = diskScanner.nextLine();
    g = recreateObject(list);

    geoList.add(g);

}

关于java - 当我想从文件创建 ArrayList 时,我是否要从文件实例化对象? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28586758/

相关文章:

java - 一个程序中的多个 JVM 实例

java - 创建存储类别,按权重排序和限制

java - 打印 List/String 类型的 Arraylist 的所有元素

java - 如何在 java 中实例化通用数组类型?

java - 从 Runtime.getRuntime().exec(command) 运行的外部进程从哪里获取内存?

java - Camel hdfs2到文件协议(protocol)文件传输

c++ - 专用结构/类中未识别的数据成员

c++ - 强制模板静态成员实例化

java - Struts 2 迭代器对象与 Spring Security 上下文的比较

java - 如何使用 java 在 libvirt 中使用 Activity 域填充组合框