【问题标题】:Implementing toString method and constructor in ArrayList [duplicate]在 ArrayList 中实现 toString 方法和构造函数
【发布时间】:2013-10-26 14:27:49
【问题描述】:

我实现了一个地址簿和一个地址类!我想实现一个方法“searchForename”和“searchSurename”,这是我之前用“insert”添加的搜索元素。我查看了使用 ArrayList 搜索对象或元素的其他实现,但大多数情况下它们真的让我感到困惑,因为太多的代码没有任何解释。

第三次编辑新问题!:

第三次尝试:

import java.util.ArrayList;


public class Adressbook {

    private ArrayList<Adress> adresses = null;

    public Adressbook(){
        adresses = new ArrayList<Adress>();
    }

    public void insert(Adress adress){
        adresses.add(new Adress("Marvin","Wildman","Blastreet",9,12345,"Blatown"));
        adresses.add(new Adress("Anne","Wildman","Woodstreet",10,6789,"Exampletown"));
        adresses.add(new Adress("William","Wildman","Eaglestreet",11,73975,"Blubvalley"));
    }


    public void searchSurename(String surename){
        for(Adress s: adresses){
            if("Green".equals(surename)){
            System.out.println(s);
            }
        }

    }

    public void searchForename(String forename){
        for(Adress s: adresses){
            if("Anne".equals(forename)){
            System.out.println(s);
            }
        }
    }

    public String toString(){
        return null;

    }

}

我有几个问题:

1.Adressbook中的toString方法是怎样的?

2.Adress 类的 toString 是什么样子的?

3.Adress 类中的构造函数看起来正确吗?

4.我可以比这更容易/更有效地实现搜索方法吗?如果不正确,我该如何更改?

忘记了我的班级地址:

public class Adress {
    public static String forename;
    public static String surename;
    public static String street;
    public static int houseno;
    public static int code;
    public static String state;



    public Adress(String forename, String surename, String street, int houseno, int code,String state){
        this.forename = forename;
        this.surename = surename;
        this.street = street;
        this.houseno = houseno;
        this.code = code;
        this.state = state;
    }



    public String toString(){
        return null;
    }

}

【问题讨论】:

  • 谢谢!我是这个话题的新手。我有很多东西要学。
  • 附注地址是拼写地址。最好避免变量名中的拼写错误。

标签: java algorithm sorting search arraylist


【解决方案1】:

您的方法是static 方法,这就是为什么您不能在静态上下文中使用this,因为在调用静态方法时没有对象实例。

public static String searchSurename // static method

您需要从方法声明中删除static

如果您无法进行上述更改,则必须将您的 ArrayList adresses 设置为 static

另外,作为旁注,使用equals() 进行字符串值比较。 == 用于对象引用比较。

if(this.adresses.get(i).getSurename().equals(surename)) {

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    相关资源
    最近更新 更多