首页 > 解决方案 > 如何访问 arrayList 内的类的实例

问题描述

我正在做一个 MOOC 并且应该返回一个与名称相关联的数字。号码名称组合保存在一个名为 Phonebook 的对象中,该对象是一个 ArrayList。arrayList 包含我创建的类 Person 的信息。我需要对电话簿对象执行 getNumber(),但我不能,因为 getNumber() 仅适用于 Person 类型的对象。

package problem94_phonebook;
import java.util.ArrayList;

public class Phonebook {

    private ArrayList<Person> phonebook;


    public Phonebook(){
    this.phonebook = new ArrayList<Person>(); 
    }

    public String searchNumber(String name){
    if (this.phonebook.contains(name)){
    return this.phonebook.Person.getNumber(); // here is the problem
    }
    } 

}
package problem94_phonebook;
import java.util.ArrayList;


public class Person {

    private String Name;
    private String Numb;
    private ArrayList<String> Phonebook;

    public Person(String name, String numb){
    this.Name = name;
    this.Numb = numb;
    this.Phonebook = new ArrayList<String>();
    }

    public String getName() {
        return Name;
    }

    public String getNumber() {
        return Numb;
    }

    public String toString(){
    return this.Name +"  " +"nummber:  " + this.Numb;   
    }

    public void changeNumber(String newNumber){
    this.Numb = newNumber;
    }

    public void add(String name, String number){
    this.Phonebook.add(name);
    this.Phonebook.add(number);

    }

    public void printAll(){
    for(String i : this.Phonebook){
        System.out.println(i);
      }
    }
}

标签: java

解决方案


你可以试试这个

   for (Person  person : phonebook) 
    { 
        if(person.getName().equals(name)){
               return person.getNumber();
         }
    }

要使用它,您需要将返回类型更改String searchNumber(String name) StringArrayList<String>


推荐阅读