2016-12-15 72 views
-1

我编辑此代码,因为我不能永久删除它。我编辑了这段代码,因为我不能永久删除它。我编辑了这段代码,因为我不能永久删除它。我编辑的代码,因为我不能永久删除 。我编辑的代码,因为我不能删除它永久这个标题已被编辑

请不要重新编辑

+0

线索:看看这两种方法有什么共同的代码,将这些代码提取到一个新的方法并从两种方法中调用它。 – radoh

回答

1

你应该从创建文件的加载分离成图的图。

事情是这样的:

public interface GraphLoader { 
    /** 
    * Fill a graph with no property from a single file. 
    * 
    * @param graph the graph to fill 
    * @param path path to graph file 
    * @return a graph with no property 
    */ 
    public static void loadSingleFile(Graph graph, Path path) { 
     try (BufferedReader bufferedReader = new BufferedReader(new FileReader(path.toFile()))) { 
      String line; 
      while ((line = bufferedReader.readLine()) != null) { 
       String[] vertices = line.split(" "); 
       if (vertices.length < 2) { 
        continue; 
       } 
       graph.addEdge(Integer.parseInt(vertices[0]), Integer.parseInt(vertices[1])); 
      } 

     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    /** 
    * load a graph with no property from a single file. 
    * 
    * @param path path to graph file 
    * @return a graph with no property 
    */ 
    public static Graph loadSingleFile(Path path) { 
     Graph graph = new Graph(); 
     loadSingleFile(graph, path); 
     return graph; 
    } 

    /** 
    * load a graph with no property from multiple files in parallel. 
    * 
    * @param paths paths to graph files 
    * @return a graph with no property 
    */ 
    static Graph loadMultipleFiles(Path[] paths) { 
     Graph graph = new Graph(); 
     for (Path path : paths) { 
      loadSingleFile(graph, path); 
     } 
     return graph; 
    } 

} 
+0

非常感谢你的回答,这是非常有帮助的,我希望我可以让你的联系方式问你更多的问题,如果这不是太多问 – questionner

+0

@benimane - 对不起 - 没有个人接触SO - 只是发表另一个问题和有人会帮忙。 – OldCurmudgeon

+0

我发布了另一个问题,我很感激你是否可以帮助我“http://stackoverflow.com/questions/41220825/similar-methods-with-a-slight-difference-can-i-merge-java#” – questionner