Как ускорить чтение на входе в Java - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь прочитать информацию из файлов, чтобы реализовать алгоритм Дейкстры. Я полагаю, что удвоение для l oop вызывает резкое замедление, есть ли что-нибудь вокруг этого?

Edge[] edge = new Edge[127807];
                int indexEdge = 0; 
                String line2 = "";
                BufferedReader fileReader2 = new BufferedReader(new FileReader("Road.txt"));
                String valueString = null;
                String vertex1IDName = null;
                String vertex2IDName = null;
                String extra = null;
                float value = 0;
                int vertex1ID = 0;
                int vertex2ID = 0;
                //Read the file line by line
                while ((line2 = fileReader2.readLine()) != null) 
                {
                    //Get all tokens available in line
                    String[] tokens2 = line2.split(DELIMITER);
                    for(String token1 : tokens2)
                    {
                        vertex1IDName = tokens2[0];
                        vertex2IDName = tokens2[1];
                        valueString = tokens2[2];
                        if(tokens2.length - 1 == 3) {
                            extra = tokens2[tokens2.length - 1];
                        }
                        else {
                            extra = "";
                        }
                        vertex1ID = Integer.parseInt(vertex1IDName);
                        vertex2ID = Integer.parseInt(vertex2IDName);
                        value = Float.parseFloat(valueString);

                    }
                    System.out.println("value: "+ value + " vertex1ID:"+ vertex1ID +" vertex2ID:"+ vertex2ID+ " extra:" + extra);
                    //if vertex 1 name or vertex 2 name in vertex.getID()
                    for(int i = 0; i< indexVertex; i++) {
                        for(int j = 0; j< indexVertex; j++) {
                            if(vertex1ID == vertex[i].getID() && vertex2ID == vertex[j].getID()) {
                                vertex[i].addNeighbour(edge[indexEdge] = new Edge(value,vertex[i],vertex[j],extra));
                                indexEdge++;
                            }   
                        }
                    }            
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...