java - 三种方法搜索: name; name and surname; and age in an array

标签 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”,仅更改它们应该返回的内容,第二个应该返回人员的姓名,第三个应该返回应返回该人的年龄。

你能帮我吗?

最佳答案

这只是人员迭代并检查getName()。但是对于教育建议,您总是需要检查人名是否可以为 null,否则 searchPerson 函数将使用 null 参数调用(NullPointerException 对于 java 开发人员来说是非常严重的错误,您老师可以检查你的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; 
}

关于java - 三种方法搜索: name; name and surname; and age in an array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53763442/

相关文章:

java - 从 Java 调用 Web 服务/网站

java - 从Java中的另一个类访问变量的实例

java - 在 Android TV 中的 fragment 上创建叠加层?

java - HashMap 的线程安全实现

java - 单例或连接池以获得高性能?

java - 为什么Spring MVC会以404响应并报告“在DispatcherServlet中未找到带有URI […]的HTTP请求的映射”?

java - 如何通过java使我的应用程序出现在windows中的 "open with"菜单中

Java OpenCV 无法正确检测轮廓

java - Web 应用程序开发 - 选项

java - 在 ES 中解密 Logstash 加密数据时遇到问题