我的通讯录中有没有不使用数组列表的方法

问题描述 投票:0回答:1

除了使用数组列表还有其他方法吗?在我的作业中,我们不允许使用数组列表,array可以,但根本不能使用数组列表。基本上,这是一本可保存20个联系人的联系人列表书。每个联系人都必须按字母顺序显示。

主要

public static void main(String[] args) {
    List<Contact> lsCont = new ArrayList<Contact>();
    Contact[] contacts = new Contact[20];
    Scanner scanner = new Scanner(System.in);
    String firstName;
    String lastName;
    String phone;
    String email;
    int maxContacts = 20;

    for (int i = 0; i < contacts.length; i++) {
        System.out.println("insert first name : ");
        firstName = scanner.nextLine();
        System.out.println("insert last Name : ");
        lastName = scanner.nextLine();
        System.out.println("insert phone : ");
        phone = scanner.nextLine();
        System.out.println("insert email : ");
        email = scanner.nextLine();

        Contact cont = new Contact(firstName, lastName, phone, email);

        lsCont.add(cont);

        Collections.sort(lsCont);

        for (Contact contact : lsCont) {
            System.out.println(contact.toString());

        }
        if (i == maxContacts) {
            System.out.println("maxiumum number of adding contact has reached");
            break;
            }
         }

     }
 }

联系人

public class Contact implements Comparable<Contact> {

private String firstName;
private String lastName;
private String phone;
private String email;

public Contact(String firstName, String lastName, String phone, String email) {
    this.firstName = firstName;
    this.lastName = lastName;
    this.phone = phone;
    this.email = email;
}

public String getFirstName() {
    return firstName;
}

public String getLastName() {
    return lastName;
}

public String getPhone() {
    return phone;
}

public void setFirstName(String firstName) {
    this.firstName = firstName;
}

public void setLastName(String lastName) {
    this.lastName = lastName;
}

public void setPhone(String phone) {
    this.phone = phone;
}

@Override
public int compareTo(Contact obj) {
    return this.lastName.compareTo(obj.lastName);

}

@Override
public String toString() {
    return "Contacts:  firstName = " + firstName + ", lastName = " + lastName + ", phone = " + phone + ", email = " + email;
   }

}
java
1个回答
0
投票

如果您知道Contact数组的大小,则可以使用数组

public static void main(String[] args) {

    int maxContacts = 20;
    Contact[] contacts = new Contact[maxContacts];    // initialize array of size 20
    Scanner scanner = new Scanner(System.in);
    String firstName;
    String lastName;
    String phone;
    String email;

   //collect 20 contacts into array
    for (int i = 0; i < maxContacts; i++) {

         System.out.println("insert first name : ");
         firstName = scanner.nextLine();
         System.out.println("insert last Name : ");
         lastName = scanner.nextLine();
         System.out.println("insert phone : ");
         phone = scanner.nextLine();
         System.out.println("insert email : ");
         email = scanner.nextLine();

         contacts[i] = new Contact(firstName, lastName, phone, email);
    }

   // Just print contacts array is full
    if (contacts.length == maxContacts) {
        System.out.println("maxiumum number of adding contact has reached");
        }

      //Now just sort the array based on name
      Arrays.sort(contacts);

     //Finally print contacts in order
     for (Contact contact : contacts) {
        System.out.println(contact.toString());

    }

 }
© www.soinside.com 2019 - 2024. All rights reserved.