在Java編程中,通訊錄是一種常見的數據結構,它通常包括聯系人的姓名、電話號碼、電子郵件、地址等信息。為了實現通訊錄的存儲和讀寫,我們可以使用Java的集合框架和文件IO操作。
首先我們可以使用HashMap集合來存儲通訊錄中的聯系人信息。HashMap是基于哈希表實現的,它可以快速地查找和插入數據。我們可以將聯系人的姓名作為HashMap的鍵,聯系人的詳細信息作為值:
HashMap<String, Contact> contacts = new HashMap<>(); contacts.put("張三", new Contact("張三", "13312345678", "zhangsan@email.com", "北京"));
其中Contact是一個自定義類,用于存儲聯系人的詳細信息,它應該包括姓名、電話號碼、電子郵件和地址等屬性。我們可以通過重寫Contact類的toString方法來輸出聯系人的信息:
public class Contact { private String name; private String phoneNumber; private String email; private String address; // constructors, getters and setters public String toString() { return "姓名:" + name + "\n電話號碼:" + phoneNumber + "\n電子郵件:" + email + "\n地址:" + address; } }
接下來我們可以使用文件IO操作來實現通訊錄的讀寫。我們可以將通訊錄存儲在一個文本文件中,通過讀寫文件的方式來實現通訊錄的持久化。為了方便,我們可以定義一個ContactList類來封裝通訊錄的讀寫操作:
public class ContactList { private HashMap<String, Contact> contacts; private String filePath; public ContactList(String filePath) { this.contacts = new HashMap<>(); this.filePath = filePath; loadContacts(); } public void addContact(String name, String phoneNumber, String email, String address) { Contact contact = new Contact(name, phoneNumber, email, address); contacts.put(name, contact); saveContacts(); } public void removeContact(String name) { contacts.remove(name); saveContacts(); } public void printContacts() { for (Contact c : contacts.values()) { System.out.println(c); } } private void loadContacts() { try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { String line; while ((line = br.readLine()) != null) { String[] parts = line.split(","); String name = parts[0]; String phoneNumber = parts[1]; String email = parts[2]; String address = parts[3]; contacts.put(name, new Contact(name, phoneNumber, email, address)); } } catch (IOException e) { e.printStackTrace(); } } private void saveContacts() { try (PrintWriter pw = new PrintWriter(new FileWriter(filePath))) { for (Contact c : contacts.values()) { pw.println(c.getName() + "," + c.getPhoneNumber() + "," + c.getEmail() + "," + c.getAddress()); } pw.flush(); } catch (IOException e) { e.printStackTrace(); } } }
在ContactList類的構造函數中,我們首先會調用loadContacts方法來從文件中讀取通訊錄,如果文件不存在則會創建一個新文件。在addContact和removeContact方法中,我們現將HashMap中的聯系人信息更新,然后調用saveContacts方法將新的通訊錄保存到文件中。在printContacts方法中,我們遍歷HashMap并調用Contact類的toString方法輸出每個聯系人的信息。
使用ContactList類可以方便地實現通訊錄的存儲和讀寫,例如:
ContactList contactList = new ContactList("contacts.txt"); contactList.addContact("張三", "13312345678", "zhangsan@email.com", "北京"); contactList.removeContact("張三"); contactList.printContacts();
上一篇css圖片從中間翻轉
下一篇python矩估計函數