我如何在Java中创建一个可以包含100个地址簿条目的地址簿?

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

这是我的通讯录输入课

public class AddressBookEntry {

private String firstname;
private String lastname;
private int streetno;
private String street;
private String city;
private int telephonenumber;
private String emailaddress;



public AddressBookEntry(String firstname, String lastname, int streetno,
    String street, String city, int telephonenumber, String emailaddress) {
    super();
    this.firstname = firstname;
    this.lastname = lastname;
    this.streetno = streetno;
    this.street = street;
    this.city = city;
    this.telephonenumber = telephonenumber;
    this.emailaddress = emailaddress;
}



public AddressBookEntry() {
    // TODO Auto-generated constructor stub
}

这些是设置者

public String getFirstname() {
    return firstname;
}



public void setFirstname(String firstname) {
    this.firstname = firstname;
}



public String getLastname() {
    return lastname;
}



public void setLastname(String lastname) {
    this.lastname = lastname;
}



public int getStreetno() {
    return streetno;
}



public void setStreetno(int streetno) {
    this.streetno = streetno;
}



public String getStreet() {
    return street;
}



public void setStreet(String street) {
    this.street = street;
}



public String getCity() {
    return city;
}



public void setCity(String city) {
    this.city = city;
}



public int getTelephonenumber() {
    return telephonenumber;
}



public void setTelephonenumber(int telephonenumber) {
    this.telephonenumber = telephonenumber;
}



public String getEmailaddress() {
    return emailaddress;
}



public void setEmailaddress(String emailaddress) {
    this.emailaddress = emailaddress;
}

这是自定义方法

public String fullName() {
    return this.firstname + " " + this.lastname;
}

public String fullAddress() {
    return this.streetno + " " + this.street + " st. " + this.city + " city";
}

public void displayAddress(){
    System.out.println("Name               : " + fullName());
    System.out.println("Address            : " + fullAddress());
    System.out.println("Telephone Number   : " + this.telephonenumber);
    System.out.println("Email Address      : " + this.emailaddress + "@gmail.com"+"\n");
}
}

现在是地址簿的课程

  import java.util.ArrayList;
  import java.util.List;

  public class AddressBook {

  private List<AddressBookEntry> listOfEntries;

   public AddressBook() {
    this.listOfEntries = new ArrayList<>();
}

public void add(AddressBookEntry addressBookEntry) {

    this.listOfEntries.add(addressBookEntry);
}

public void delete(int index) {
    this.listOfEntries.remove(index);
}

public AddressBookEntry get(int index) {
    return this.listOfEntries.get(index);
}

public AddressBookEntry[] viewAll() {

    AddressBookEntry[] result = new AddressBookEntry[this.listOfEntries.size()];

    this.listOfEntries.toArray(result);

    return result;
}
 }

如何使用上面给定的代码,使用数组来创建一个限制100个AddressBookEntry对象条目的类地址簿?它包含菜单时:AddEntry,DeleteEntry,ViewAllEntries和UpdateEntry?

java arrays class oop getter-setter
1个回答
0
投票

如果要固定大小,则应使用数组而不是List。如果由于某种原因您无法更改列表,则可以将大小提供给ArrayList构造函数。

public AddressBook() {
    this.listOfEntries = new ArrayList<>(100);
}

但是,您需要在插入元素之前检查大小。

public void add(AddressBookEntry addressBookEntry) {
    if(this.listOfEntries.size() <= 100)    
        this.listOfEntries.add(addressBookEntry);
    else
        throw new IllegalStateException("Address book is full");
}
© www.soinside.com 2019 - 2024. All rights reserved.