首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >三种搜索方法:姓名;姓名和姓氏;数组中的年龄

三种搜索方法:姓名;姓名和姓氏;数组中的年龄
EN

Stack Overflow用户
提问于 2018-12-13 21:54:26
回答 2查看 357关注 0票数 1

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

代码语言:javascript
运行
复制
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;
    }

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

我知道如何“开始”它们。第一个是:

代码语言:javascript
运行
复制
public Person searchPerson (String name) {

}

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

你能帮我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-13 22:08:30

它只是对persons和check getName()的迭代。但是对于教育推荐者,你总是需要检查人名可以是null,否则searchPerson函数会用null参数调用(NullPointerException对于java开发人员来说是非常糟糕的错误,你的老师可以检查你的api)。

代码语言:javascript
运行
复制
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; 
}
票数 1
EN

Stack Overflow用户

发布于 2018-12-13 21:59:48

我们的想法是迭代数组并比较参数name,如下所示

代码语言:javascript
运行
复制
public Person searchPerson(String name) {
    for (Person p: persons) {
        if (p.getName().equals(name)) return p;
    }
    return null; // person could not be found
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53763442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档