Java 从类检索ArrayList信息

Java 从类检索ArrayList信息,java,class,arraylist,Java,Class,Arraylist,我是java新手,刚刚开始一个项目,需要从.txt文件创建一个网络,文件中的每一行都是“node1 node2”,节点之间有一个表格。我已经创建了一个节点类和一个边缘类,它接受节点名作为参数,现在我正在编写网络类。我正在使用Arraylist存储节点和交互(边缘)信息,但我不知道如何在主程序中检索这些信息。目前的网络等级: import java.io.*; import java.util.ArrayList; public class Network { public Array

我是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!");
        }
    }
}
import java.io.*;
导入java.util.ArrayList;
公共班级网络{
公共ArrayList节点=新建ArrayList();
public ArrayList edges=new ArrayList();
公共字符串文件名;
公共网络(字符串f){
this.filename=f;
FileReader networkinput=null;
试一试{
networkinput=新文件读取器(“f”);
BufferedReader BufferedReader=新的BufferedReader(网络输入);
//读取中的参数文件。
字符串行=null;
而((line=bufferedReader.readLine())!=null){
edges.add(line);//将文件的每一行添加到数组中
字符串分隔符=“\t”;
String[]tempnodelist;//在每个循环中创建一个数组
tempnodelist=line.split(分隔符);
nodes.add(tempnodelist[0]);//添加第一个节点
nodes.add(tempnodelist[1]);//将第二个节点添加到节点数组中。
}
bufferedReader.close();
}
捕获(IOE异常){
System.out.println(“读取错误!”);
}
}
}
目前,我希望这段代码接受文件,到达每一行并将每一个节点放入arraylist“nodes”,将每一行(表示交互)放入arraylist“Edge”。我不确定如何在主程序中检索此信息,以检查它是否正在执行我认为应该执行的操作

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


如果有不清楚的地方,请询问任何问题。

创建
网络
类的实例,以初始化构造函数中正在进行的一切。然后访问数据

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);
        }
    }
}

注:考虑“Errr2”所说的内容。

可以调用NETWork.No.NealsNealNote获取ARARYLIST,但这不一定是明智的,这取决于您如何使用它。更明智的做法是将ArrayList设为私有,并创建一个getter方法,该方法将返回ArrayList,然后您可以从另一个类调用该方法。比如说:

private ArrayList<String> nodes = new ArrayList<String>();
private ArrayList<String> edges = new ArrayList<String>();
private ArrayList nodes=new ArrayList();
私有ArrayList边=新ArrayList();
那么以后有这个,

public ArrayList<String> getNodes(){
    return nodes;
}
public ArrayList getNodes(){
返回节点;
}

“如果有任何问题不清楚,请询问。”请不要忘记在问题中添加“?”!有些人在页面中搜索“?”,如果“问题”中不存在,则直接转到行中的下一个(实际)问题。或者换一种说法。你的问题是什么?“这段代码是否符合我的预期?”你试过了吗?你得到了什么?我真的不知道如何尝试…这就是问题所在。一旦输入了文件并填充了ArrayList(如果它们确实是…),我如何在主程序中显示ArrayList?非常好,这正是我所需要的。谢谢你的时间!非常感谢,这正是我需要的。我希望我能给你们两个打个漂亮的勾:p。
private ArrayList<String> nodes = new ArrayList<String>();
private ArrayList<String> edges = new ArrayList<String>();
public ArrayList<String> getNodes(){
    return nodes;
}