这是一个用Java编写的简单的通讯录程序,实现了添加联系人、删除联系人、按名称排序、按电话号码排序和显示联系人等功能。下面对代码进行详细说明:
- 定义了一个
Contact
类,它包含两个属性:名称和电话号码。该类还提供了一个构造函数、两个获取属性值的方法和一个toString()
方法,用于将对象转换为字符串。 ContactList
类是程序的主类,它定义了一个静态成员变量contacts
,用于存储所有的联系人。该类还提供了五个方法,分别对应程序的五个功能:a.
addContact()
方法:用于添加联系人。用户输入联系人的名称和电话号码,创建一个Contact
对象,并将其添加到contacts
列表中。b.
deleteContact()
方法:用于删除联系人。用户输入联系人的名称,程序在contacts
列表中查找匹配的联系人,并将其从列表中删除。c.
sortContactsByName()
方法:用于按名称排序。程序使用Collections.sort()
方法和一个比较器(Comparator
)将contacts
列表按照联系人名称进行排序。d.
sortContactsByPhoneNumber()
方法:用于按电话号码排序。程序使用Collections.sort()
方法和一个比较器(Comparator
)将contacts
列表按照联系人电话号码进行排序。e.
displayContacts()
方法:用于显示所有联系人。如果contacts
列表为空,则程序输出"No contacts found";否则,程序遍历contacts
列表并输出每个联系人的名称和电话号码。- 在
main()
方法中,程序使用一个Scanner
对象从控制台获取用户输入,并根据用户输入的选项调用相应的方法。当用户输入6时,程序退出循环并结束执行。 - 在
sortContactsByName()
和sortContactsByPhoneNumber()
方法中,程序使用一个匿名内部类创建了一个比较器,以便对contacts
列表进行排序。比较器定义了compare()
方法,用于比较两个联系人的名称或电话号码。Collections.sort()
方法使用这个比较器对contacts
列表进行排序。
总之,这是一个简单的通讯录程序,它使用了Java的基本语法和一些集合框架类库,实现了一些基本的功能。
以下是使用Java编写的通讯录排序功能源代码示例:
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Scanner; public class ContactList { private static List<Contact> contacts = new ArrayList<Contact>(); public static void main(String[] args) { Scanner scanner = new Scanner(System.in); boolean quit = false; int choice; while (!quit) { System.out.println("Enter your choice:"); System.out.println("1. Add Contact"); System.out.println("2. Delete Contact"); System.out.println("3. Sort Contacts by Name"); System.out.println("4. Sort Contacts by Phone Number"); System.out.println("5. Display Contacts"); System.out.println("6. Quit"); choice = scanner.nextInt(); switch (choice) { case 1: addContact(scanner); break; case 2: deleteContact(scanner); break; case 3: sortContactsByName(); break; case 4: sortContactsByPhoneNumber(); break; case 5: displayContacts(); break; case 6: quit = true; break; default: System.out.println("Invalid choice"); } } scanner.close(); } private static void addContact(Scanner scanner) { System.out.println("Enter name:"); String name = scanner.next(); System.out.println("Enter phone number:"); String phoneNumber = scanner.next(); contacts.add(new Contact(name, phoneNumber)); System.out.println("Contact added"); } private static void deleteContact(Scanner scanner) { System.out.println("Enter name:"); String name = scanner.next(); Contact contactToDelete = null; for (Contact contact : contacts) { if (contact.getName().equals(name)) { contactToDelete = contact; break; } } if (contactToDelete != null) { contacts.remove(contactToDelete); System.out.println("Contact deleted"); } else { System.out.println("Contact not found"); } } private static void sortContactsByName() { Collections.sort(contacts, new Comparator<Contact>() { public int compare(Contact c1, Contact c2) { return c1.getName().compareTo(c2.getName()); } }); System.out.println("Contacts sorted by name"); } private static void sortContactsByPhoneNumber() { Collections.sort(contacts, new Comparator<Contact>() { public int compare(Contact c1, Contact c2) { return c1.getPhoneNumber().compareTo(c2.getPhoneNumber()); } }); System.out.println("Contacts sorted by phone number"); } private static void displayContacts() { if (contacts.isEmpty()) { System.out.println("No contacts found"); } else { for (Contact contact : contacts) { System.out.println(contact); } } } } class Contact { private String name; private String phoneNumber; public Contact(String name, String phoneNumber) { this.name = name; this.phoneNumber = phoneNumber; } public String getName() { return name; } public String getPhoneNumber() { return phoneNumber; } public String toString() { return name + " " + phoneNumber; } }
在此示例中,通讯录联系人被表示为Contact
类的对象,其中包含名称和电话号码。 ContactList
类包含添加,删除,按名称或电话号码排序以及显示通讯录联系人的方法。
评论