【问题标题】:Objects in an ArrayListArrayList 中的对象
【发布时间】:2011-12-28 05:48:26
【问题描述】:

我正在为一个让用户输入邮政编码的类的 java 项目工作,并将与邮政编码一起的信息(城市、州..ect)返回给用户。

所有邮政编码都存储在一个数组列表中,该数组列表将每个邮政编码及其信息存储在一个对象中。

这是用于将邮政编码对象添加到数组列表的代码:

ZipCode zip = new Zipcode(zipcode, city, state, lat, lon); 

zipCode.add(zip); 

我的问题是如何从每个对象的数组列表中获取某些信息?

例如,如果我想使用getZip() 方法返回位置 39 中 zipCode 对象的邮政编码,该怎么做?

我希望我没有感到困惑。

【问题讨论】:

    标签: java arrays class object


    【解决方案1】:

    *例如,如果我想使用 getZip() 方法返回点 39 中的 zipCode 对象的邮政编码,该怎么做? *

    怎么样

    zipCode.get(39).getZip()
    

    但是,使用Map<Integer, ZipCode> zipCodes 和使用似乎对您有好处

    zipCodes.put(zipCodeNumber, zipObject);
    

    【讨论】:

    • 我明白了。 map是数组列表的名字吗?
    【解决方案2】:

    要在ArrayList 的第 n 个索引处检索对象,请使用:

    arrayList.get(n)
    

    在你的情况下,这将是:

    ZipCode result = zipCode.get(39);
    

    然后您可以调用生成的ZipCode 对象的getZip() 方法,方法是:

    result.getZip();
    

    【讨论】:

      【解决方案3】:

      只需使用 get() 方法访问数组列表。

      你的例子:

      zipCode.get(39).getZip();
      

      对不起,我回答的太快了。

      【讨论】:

      • 它是一个 ArrayList 而不是一个数组。
      【解决方案4】:

      记住——你有(至少)两个不同的类:

      • 您的“邮政编码”

        ...和...

      • 您的列表邮政编码

      因此,您的实际代码应该看起来更像这样:

        List<ZipCode> zipCodeList = new List<ZipCode>();
        ZipCode aZipCode = new Zipcode(zipcode, city, state, lat, lon);
        zipCodeList.add (aZipCode);
      

      你的“getZip()”函数(无论你决定把它放在哪里),可能看起来像这样:

        ZipCode myZip = someOtherObject.getZip (i);
      

      关键是要决定你的班级是什么,以及每个班级“负责”做什么。其余的(包括您的实际实现)如下。

      在一张纸上写一个简单的类图可能会有所帮助:带有类名、主要方法和主要字段的框。有点像 UML - 尽可能简单

      '希望有帮助!

      PS: 我假设您的“getZip()”方法返回了一个完整的“ZipCode”对象(纬度、经度......以及“zipcode”)。也许您想要一个仅用于“邮政编码”(例如“90630”)的访问器方法。在这种情况下,我会推荐这样的东西:

        List<ZipCode> zipCodeList = new List<ZipCode>();
        zipCodeList.add ("90210", "Beverly Hills", "CA", "000000.00", "000000.00");
        ...
        ZipCode zipCode = zipCodeList[0];
        string zipcode = zipCode.getZipcode ();
        string state = zipCode.getState ();
        ...
      

      【讨论】:

        猜你喜欢
        • 2019-07-30
        • 2011-06-16
        • 2018-08-07
        • 2013-08-18
        • 2020-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-11
        相关资源
        最近更新 更多