我有一个程序,它添加一个包含(int studentNumber, String firstName, String lastName, String major, double gpa)的节点并将其“保存”到文件中,我有以下方法:

public void saveRecord (Node focusNode) {

    JOptionPane.showMessageDialog(null,"saving file...");
    try
    {
        ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(file));

        if (focusNode != null){

            System.out.println(focusNode);
            output.writeObject((focusNode));

            preOrderTraverseTree(focusNode.leftChild);

            preOrderTraverseTree(focusNode.rightChild);
        }//end if
        output.close();

    }
   //catch exceptions
}//end save


现在,我想撤回编写的每个节点,并能够对它们进行不同的排序(例如,按major,gpa等)。如何在保留所有字段的同时执行此操作,以便在我重新阅读它们时可以搜索它们?我曾考虑过将它们读回到一个列表中,但是它添加的每一行都没有前面提到的参数。我的addNode方法使用这些参数将每个节点添加到树中,因此我不能只是调用它。我该怎么做?

最佳答案

我已经在对其他问题here的回答中包含了该问题的答案。

10-05 23:16