Szeregowanie arytmistów

Teraz zastanawiam się, czy moglibyście mi pomóc w serializacji ArrayList na plik. Teraz pracuję nad podsumowaniem ze szkoły, jednak nie mam prawdziwego problemu z kodowaniem. To, co robię, to książka adresowa GUI, a kiedy użytkownik dodaje adres, jest on przechowywany w arraylistyce i dodawany do comboBox. Właśnie to robię. Pytam, czy możesz serializować Arraylists. Jeśli możesz, czy możesz mnie nauczyć, jak? Albo przynajmniej daj mi kilka samouczków?

Dziękuję bardzo. Jeśli musicie zobaczyć kod przed udzieleniem odpowiedzi, dajcie mi znać, a pokażę to. Jeszcze raz bardzo ci dziękuję.

Dobra, oto mój cały kod:

import java.awt.EventQueue;


public class Address_Book {

    private JFrame frame;
    private JTextField newName;
    private JTextField newAddress;
    private JTextField newPhoneAddress;
    ArrayList<Book> test = new ArrayList<Book>();

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Address_Book window = new Address_Book();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public Address_Book() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 371, 262);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        final JComboBox comboBox = new JComboBox();
        final DefaultComboBoxModel model = new DefaultComboBoxModel();

        newName = new JTextField();
        newName.setBounds(10, 29, 79, 20);
        frame.getContentPane().add(newName);
        newName.setColumns(10);

        JLabel lbl1 = new JLabel("Enter New Name:");
        lbl1.setBounds(10, 11, 107, 14);
        frame.getContentPane().add(lbl1);

        JLabel lbl2 = new JLabel("Enter New Address:");
        lbl2.setBounds(110, 11, 107, 14);
        frame.getContentPane().add(lbl2);

        newAddress = new JTextField();
        newAddress.setColumns(10);
        newAddress.setBounds(109, 29, 96, 20);
        frame.getContentPane().add(newAddress);

        newPhoneAddress = new JTextField();
        newPhoneAddress.setColumns(10);
        newPhoneAddress.setBounds(215, 29, 130, 20);
        frame.getContentPane().add(newPhoneAddress);

        JLabel lbl3 = new JLabel("Enter New Phone number:");
        lbl3.setBounds(215, 11, 140, 14);
        frame.getContentPane().add(lbl3);

        JButton btnAddNewContact = new JButton("Add new contact");
        btnAddNewContact.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent arg0) {
                test.add( (new Book(newName.getText(), newAddress.getText(), newPhoneAddress.getText())));
                //mergesort.mergesort(test, 0, test.size() - 1);
                model.removeAllElements();
                for(int i=0; i < test.size();i++){
                    model.addElement(test.get(i).getContact()); 
                }
                comboBox.setModel(model);
                newName.setText(""); 
                newAddress.setText("");
                newPhoneAddress.setText("");
            }
        });
        btnAddNewContact.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
            }
        });
        btnAddNewContact.setBounds(10, 53, 335, 23);
        frame.getContentPane().add(btnAddNewContact);

        JLabel lbl4 = new JLabel("Current Contacts:");
        lbl4.setBounds(10, 87, 107, 14);
        frame.getContentPane().add(lbl4);

        comboBox.setModel(model);
        comboBox.setBounds(10, 101, 335, 20);
        comboBox.setSelectedIndex(test.size()-1);
        frame.getContentPane().add(comboBox);
    }
}

a oto mój przedmiot:

public class Book implements Comparable {
     private String flName, Address, pNumber;

    public Book(String Name, String address, String phoneNumber ){
        setFlName(Name);
        setAddress(address);
        setpNumber(phoneNumber);
    }

    public String getpNumber() {
        return pNumber;
    }

    public void setpNumber(String pNumber) {
        this.pNumber = pNumber;
    }

    public String getAddress() {
        return Address;
    }

    public void setAddress(String address) {
        Address = address;
    }

    public String getFlName() {
        return flName;
    }

    public void setFlName(String flName) {
        this.flName = flName;
    }  

    public String getContact() {
        return flName + " " + Address + " " + pNumber;
    }

    public int compareTo(Object c) {
        Book testBook = (Book)c;

        if (testBook.getFlName().compareTo(this.getFlName()) < 0){
            return(-1);
        }else if(testBook.getFlName().compareTo(this.getFlName()) == 0){
            return(0);
        }else{
            return(1);
        }
    }

}

Teraz znowu nie jestem pewien, jak postępować w celu serializacji Arraylists. Użyłem obiektów, ale nie Arraylists, więc nie wiem, czy jest to ten sam proces. Po prostu pytam o radę lub kilka świetnych samouczków na temat serializacji ArrayLists.

questionAnswers(2)

yourAnswerToTheQuestion