Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 边文件中的图形_Java_File_Graph - Fatal编程技术网

Java 边文件中的图形

Java 边文件中的图形,java,file,graph,Java,File,Graph,我有一个文件,看起来像这样: 0,1 0,3 1,2 1,3 2,3 基于这个文件,我想生成图形,也就是说,函数应该取一个文件名并返回一个图形 printGraph(定义如下)的预期输出如下所示: 0 -> 1 -> 3 1 -> 2 -> 3 2 -> 3 这是我目前拥有的代码: class Graph1 ArrayList<Integer> [] adjacency_list; public void addEdge(Map

我有一个文件,看起来像这样:

0,1
0,3
1,2 
1,3
2,3
基于这个文件,我想生成图形,也就是说,函数应该取一个文件名并返回一个图形

printGraph
(定义如下)的预期输出如下所示:

0 -> 1 -> 3
1 -> 2 -> 3
2 -> 3
这是我目前拥有的代码:

class Graph1

    ArrayList<Integer> [] adjacency_list;

    public void addEdge(Map<Integer, Set<Integer>> adj,int u, int v) {
        if (!adj.containsKey(u)) adj.put(u, new HashSet());
        if (!adj.containsKey(v)) adj.put(v, new HashSet());
        
        adj.get(u).add(v);
        adj.get(v).add(u);
    
    }
类图1
ArrayList[]邻接列表;
公共无效添加(映射调整、整数u、整数v){
如果(!adj.containsKey(u))adj.put(u,new HashSet());
如果(!adj.containsKey(v))adj.put(v,new HashSet());
得到(u)加(v);
得到(v)加上(u);
}
类图2
公共静态无效读取(字符串文件名){
AddEdge AddEdge=新的AddEdge();
Map adj=新的HashMap();
文件输入=新文件(“文件名”);
试一试{
扫描仪阅读器=新扫描仪(输入);//读取文件
while(reader.hasNextLine()){
字符串[]nums=reader.nextLine().split(“,”);
addEdge.addEdge(adj,Integer.parseInt(nums[0]),Integer.parseInt(nums[1]);
}
印刷图形(adj);
reader.close();
}捕获(IOE异常){
抛出新的运行时异常(e);
}
}
静态空打印图(地图调整){
对于(int u:adj.keySet()){
System.out.println(“\n顶点的边界列表”+u);
for(int v:adj.get(u)){
系统输出打印(“->”+v);
}
System.out.println();
}
}
在此代码块中

public void addEdge(Map<Integer, Set<Integer>> adj,int u, 
 int v) {
        adjacency_list[u].add(v); 
        adjacency_list[v].add(u);   
 }
public void addEdge(映射调整,int u,
int v){
邻接列表[u]。添加(v);
邻接列表[v]。添加(u);
}
您没有更新地图并输入有关索引的信息。 在printGraph方法中,您在映射上进行迭代,该映射将为空,因此不会打印任何内容。

在此代码块中

public void addEdge(Map<Integer, Set<Integer>> adj,int u, 
 int v) {
        adjacency_list[u].add(v); 
        adjacency_list[v].add(u);   
 }
public void addEdge(映射调整,int u,
int v){
邻接列表[u]。添加(v);
邻接列表[v]。添加(u);
}
您没有更新地图并输入有关索引的信息。
在printGraph方法中,您正在对地图进行迭代,该地图将为空,因此不会打印任何内容。

您对如何正确更新地图有何想法?您对如何正确更新地图有何想法?注释不用于扩展讨论;此对话已结束。评论不用于扩展讨论;这段对话已经结束。