尝试将数据传递到数组列表

时间:2014-04-22 18:41:46

标签: java arrays arraylist

我必须有下面的代码,传递用户输入的数据传递给以下方法:

public void addPerson(Person p)
{
personList.add(p);
}

并且必须从那里添加到databse.java中的数组“personList”(在最底部发布。

这是我到目前为止所做的:

package hartman;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
    Printer.printWelcome();

    Scanner keyboard = new Scanner(System.in);

    boolean keepRunning = true;
    while (keepRunning) {
        Printer.printMenu();
        Printer.printPrompt("Please enter your operation: ");

        String userSelection = keyboard.nextLine();

        switch (userSelection) {
        case "1":
            handleAddPerson(keyboard);
            break;
        case "2":
            Database.printDatabase();
            break;
        case "3":
            handleSearchPerson(keyboard);
            break;
        case "4":
            keepRunning = false;
            break;
        default:
            break;
        }
    }

    Printer.printGoodBye();

}

private static void handleAddPerson(Scanner keyboard) {
    Printer.printAddPersonTitle();
    Printer.printPrompt("First Name: ");
    String addFirstName = keyboard.nextLine();

    Printer.printPrompt("Last Name: ");
    String addLastName = keyboard.nextLine();

    Printer.printPrompt("Social Security Number: ");
    String addSocial = keyboard.nextLine();

    Printer.printPrompt("Year Born: ");
    int addYearBorn = Integer.parseInt(keyboard.nextLine());

    Person person = new Person();
    person.setFirstName(addFirstName);
    person.setLastName(addLastName);
    person.setSocialSecurityNumber(addSocial);
    person.setYearBorn(addYearBorn);
}

static void handleSearchPerson(Scanner keyboard) {
    Printer.printSearchPersonTitle();
    Printer.printPrompt("  Enter search value: ");
    String keyword = keyboard.nextLine();

   }
}
对于那些想知道的人来说,这里是Person.java。

package hartman;

public class Person {

private String firstName;
private String lastName;
private String socialSecurityNumber;
private int yearBorn;

public Person() {

}

public Person(String firstName, String lastName,
        String socialSecurityNumber, int yearBorn) {

}

public int getAge() {
    return yearBorn = 2014 - yearBorn;
}

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 String getSocialSecurityNumber() {
    return socialSecurityNumber;
}

public void setSocialSecurityNumber(String socialSecurityNumber) {
    this.socialSecurityNumber = socialSecurityNumber;
}

public int getYearBorn() {
    return yearBorn;
}

public void setYearBorn(int yearBorn) {
    this.yearBorn = yearBorn;
  }
}

这里是database.java

package hartman;

import java.util.ArrayList;
import java.util.Scanner;

public class Database {
Scanner keyboard = new Scanner(System.in);
private ArrayList<Person> personList;

public Database() {
}

public void addPerson(Person p) {
    personList.add(p);

}

public static void printDatabase() {

}

public ArrayList<Person> findPerson(String searchFor) {
    Main.handleSearchPerson(keyboard);

    ArrayList<Person> matches = new ArrayList<>();
    for (Person p : personList) {
        boolean isAMatch = false;

        if (p.getFirstName().equalsIgnoreCase(searchFor)) {
            isAMatch = true;
        }
        if (p.getLastName().equalsIgnoreCase(searchFor)) {
            isAMatch = true;
        }
        if (p.getSocialSecurityNumber().contains(searchFor)) {
            isAMatch = true;
        }
        if (String.format("%d", p.getAge()).equals(searchFor))
            if (isAMatch) {
                matches.add(p);

            }
    }
    return matches;
  }
 }

0 个答案:

没有答案