有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java LinkedList在创建加权图时不添加对象元素

我觉得我在这里遗漏了一些明显的东西,但我尝试了几种向LinkedList添加元素的方法,但仍然不起作用

我试图获取的数据以[TrainlineName,Source,Destination,Time]的形式存储在一个列表中,该列表存储在另一个列表中,因此类似于[[TrainlineName,Source,Destination,Time]…]

列表列表随后以{TrainlineName:[[list of list]]]的形式存储在哈希表中

创建图形的函数将(源、目的地、时间)作为参数来创建每个节点/站点,然后将这些节点/站点添加到LinkedList以创建站点的邻接列表。错误在于节点没有被添加到邻接列表中,其他地方也没有错误告诉我图形没有被创建,所以我相当确定错误只是元素没有被添加到linkedlist中

这是我用来绘制图表的代码

Hashtable<String, List<List<String>>> trainlineConnections = tokeniser.trainlineConnections;
        //Trainline trainlines = new Trainline();
        //need to run for every trainline
        trainlineConnections.forEach((k, v) ->{
            //for the length of every trainline
            for(int i = 0; i < trainlineConnections.get(k).size(); i++) {
                //for every connection the trainline has
                for (int j = 0; j < trainlineConnections.get(v).size(); j++) {
                    for (int l = 0; l < trainlineConnections.get(v).get(l).size(); l++) {
                        try {
                            Trainline.addConnection(trainlineConnections.get(j).get(l).get(1), trainlineConnections.get(j).get(l).get(2),
                                    trainlineConnections.get(j).get(l).get(3));
                        } catch (FileNotFoundException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }

                    }

                }
            }
        }); 

这就是我试图用来向列表中添加元素的方法:

public static void addConnection(String source, String destination, String time) throws FileNotFoundException {
        Connection connect = new Connection(source, destination, time);

        if (head == null) {
            adjacencyList.addFirst(connect);
        }
        
        connect.next = null;
        
        Connection last = head;
        
        while (last.next != null) {
            last = last.next;
        }
        last.next = connect;
        //adjacencyList.add(connect);
    }

我很确定这是我运行主代码时的错误

public static void main(String[] args) throws FileNotFoundException {
    Trainline trainlines = new Trainline();
    System.out.println("Graph created");
    trainlines.printMap();

}

printMap只返回[]

在网上看了几页之后,我认为这可能与我如何存储原始值有关,但我真的不知道从哪里开始解决这个问题,我认为这个问题是一个简单的解决方案,但我对Java不够了解,不知道我做错了什么


共 (0) 个答案