类中的对象数组

时间:2013-04-27 19:04:25

标签: java

我正在尝试在类中创建一个类的数组,以便我可以拥有多个内部类集。但是因为我无法在Java中创建一个空数组,所以我很想知道设置它的最佳方法是什么。我知道我可以定义一个比我以前使用的更大的数组但我觉得那种草率的编程。

以下是两个班级的重要部分:

public class xmldata {
    String Barcode;
    String First;
    String Last;
    String Phone;
    String Email;

    String md5sum;

    String zipfile;

    picture_data[] pics;

...

public class picture_data {

    static String filename;
    static String directory;

如您所见,我在xmldata中有一个picture_data数组。我看过一些使用列表的东西,但是示例不同,我不确定我是否理解如何在我的情况下应用它。

这是我用来尝试填充数组的代码。

    xmldata data = new xmldata();

    ResultSet pictures=db.query("select * from pictures where barcode=?",barcode);
    int i = -1;
    while (pictures.next()) {
        ++i;
        data.pics[i].setdirectory(pictures.getString("path"));
        data.pics[i].setfilename(pictures.getString("filename"));       
    } 

任何建议都将不胜感激。

4 个答案:

答案 0 :(得分:2)

现代idiomatic Java也不使用原始数组或向量,它使用type safe List implementations

同样picture_dataxmldata不是Java中类的惯用命名约定,它应该是PictureDataXMLData。我也会挑战一个名为PictureDataXMLData的类的语义。

正确的解决方案就像是

List<PictureData> list = new ArrayList<PictureData>();

了解如何在Java中使用Collections框架是提高工作效率的基本要求。类型安全List是编写真正Java代码的核心组件。

答案 1 :(得分:1)

如果数组的大小是动态的,那么请使用内部列表和ArrayList。这样,您就不必关心尺寸,因为它是在内部处理的。

答案 2 :(得分:1)

创建picture_data的对象并将其添加到picture_data

的ArrayList中

然后将该arraylist转换为数组

Convert ArrayList<String> to String[] array

http://www.java-tips.org/java-se-tips/java.lang/how-to-convert-an-arraylist-into-an-array.html

答案 3 :(得分:0)

最佳选择是使用 lazy 初始化ArrayList

public class Xmldata {

    List<picture_data> pics;

    public void addPics(picture_data data) {
       if(pics == null) pics = new ArrayList<picture_data>();
       pics.add(data);
    }
}

此处只有pics类型对象添加到picture_data

时才会创建Xmldata列表