java - 从类中检索 ArrayList 信息

标签 java class arraylist

我是java新手,刚刚开始一个项目,我需要从.txt文件创建一个网络,其中文件中的每一行都是“node1 node2”,节点之间有一个表格。我创建了一个节点类和一个边缘类,它们接受节点名称作为参数,现在我正在编写网络类。我使用 Arraylist 来存储节点和交互(边缘)信息,但我对如何在主程序中检索此信息感到困惑。目前的网络类:

import java.io.*;
import java.util.ArrayList;

public class Network {

    public ArrayList<String> nodes = new ArrayList<String>();
    public ArrayList<String> edges = new ArrayList<String>();

    public String filename;

    public Network(String f) {    

        this.filename = f;

        FileReader networkinput = null;

        try {

            networkinput = new FileReader("f");
            BufferedReader bufferedReader = new BufferedReader(networkinput);
            //reads the argument file in.

            String line = null;

            while((line = bufferedReader.readLine()) != null) {

                edges.add(line);     // Adds each line of the file to the array
                String delimiter = "\t";
                String[] tempnodelist;  // Creates an array each loop
                tempnodelist = line.split(delimiter);
                nodes.add(tempnodelist[0]);  // Adds the first node
                nodes.add(tempnodelist[1]); // Adds second node to node array.

            }
            bufferedReader.close();
        }
        catch (IOException e) {

            System.out.println("Read Error!");
        }
    }
}

就目前情况而言,我希望这段代码接受文件,到达每一行并将每个节点放入数组列表“节点”中,并将每行(表示交互)放入数组列表“边缘”中。我不确定如何在主程序中检索此信息以检查它是否按照我的想法进行。

这段代码符合我的预期吗?如何在主程序中检索此 ArrayList 信息?

如有任何不清楚的地方,请提出任何问题。

最佳答案

创建Network类的实例来初始化构造函数中发生的所有事情。然后访问数据。

public class TestNetwork {
    public static void main(String[] args){
        Network network = new Network("file.txt");  <-- create instance
        ArrayList<String> nodes = network.nodes;    <-- reference the data
        ArrayList<String> edges = network.edges;

        for (String s : nodes) {                    <-- traverse data
            System.out.println(s);                  <-- print data
        }

        for (String s : edges){
            System.out.println(s);
        }
    }
}

另外,我在你的构造函数中注意到的另一件事是这个

networkinput = new FileReader("f");   <-- "f" I don't think is the file path.

你应该使用这个

networkinput = new FileReader(f);

or

networkinput = new FileReader(filename);

注意:考虑@erzr2所说的。

关于java - 从类中检索 ArrayList 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20594969/

相关文章:

java - 了解上界和下界?在 Java 泛型中

java - 在工厂模式中使用反射

python - 如何在 python 类中访问成员函数作为成员变量?

java - 在 ArrayList 中搜索字符串;总是返回 false

java - 首次访问静态数组列表

java - Spring中的@Autowired注释给我NullPointerException

c# - 实现相同方法的表单

python - 如何在 Python 中动态访问类属性?

Java 添加到 ArrayList<String> 然后转换为 Object[][]

java - iText/Flying Saucer PdfStamper 使用 OutputStream