Java 从类检索ArrayList信息
我是java新手,刚刚开始一个项目,需要从.txt文件创建一个网络,文件中的每一行都是“node1 node2”,节点之间有一个表格。我已经创建了一个节点类和一个边缘类,它接受节点名作为参数,现在我正在编写网络类。我正在使用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
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;
}