三种搜索方法:名称;名和姓;和年龄排列

时间:2018-12-13 13:54:26

标签: java

我有一个名为“ Person”的类,其中的属性是:姓名,姓氏和年龄。我已经创建了它,它很简单,它仅由setter和getter组成。但是然后我有了另一个叫做“ PersonDatabase”的类,对我来说,这有点复杂。我将在这里显示:

public class PersonDatabase {

    private Person[] persons;
    private int personCount;

    public PersonDatabase(int defaultPersonsCapacity) {
        persons = new Person[defaultPersonsCapacity];
        personCount = 0;
    }

    public void addPerson(String name, String surname, int age) {

        if (personCount == persons.length) {
            System.out.println("Unable to add Person.");
            return;
        }

        persons[personCount] = new Person(name, surname, age);
        personCount++;

        System.out.println("Person added.");
    }

    public int getPersonCount() {
        return personCount;
    }

到目前为止,这是我所拥有的,但是我必须在其中创建另外三种方法,一种仅获取名称,另一种获取名称和姓氏,另一种仅获取一个人的年龄。

我知道如何从根本上“开始”他们。第一个是:

public Person searchPerson (String name) {

}

第二个和第三个应该相同。它们应具有相同的“数据类型”(类Person)和名称“ searchPerson”,仅更改应返回的内容,第二个应返回人员的姓名和姓氏,第三个应返回个人的姓名和姓氏。人的年龄。

您能帮我吗?

2 个答案:

答案 0 :(得分:1)

想法是遍历数组并比较参数name之类的东西

public Person searchPerson(String name) {
    for (Person p: persons) {
        if (p.getName().equals(name)) return p;
    }
    return null; // person could not be found
}

答案 1 :(得分:1)

这只是人员迭代并检查getName()。但是对于教育建议,您始终需要检查人名可以为null,否则将使用null参数调用searchPerson函数(对于Java开发人员,NullPointerException是非常糟糕的错误,您的老师可以检查您的api) 。

public Person searchPerson (String name) {
    for (Person person: persons) {
        if (name != null && name.equals( person.getName())) {
          return person;
        }
    }
    System.out.println("We can not found Person with name " + name);
    return null; 
}