除了使用数组列表还有其他方法吗?在我的作业中,我们不允许使用数组列表,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;
}
}
如果您知道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());
}
}