1

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

这是 2 个类的重要部分:

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 中有一个图片数据数组。我见过一些使用列表的东西,但例子不同,我不确定我是否理解如何在我的案例中应用它。

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

    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

4 回答 4

2

现代惯用的 Java 也不使用原始数组或向量,它使用类型安全List实现

并且picture_dataandxmldata不是 Java 中类的惯用命名约定,它应该是PictureDataand XMLData。我也会挑战一个名为PictureDataor的类的语义XMLData

一个正确的解决方案是这样的

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

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

于 2013-04-27T19:07:55.710 回答
1

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

于 2013-04-27T19:06:17.677 回答
1

创建一个picture_data的对象并将其添加到picture_data的一个ArrayList中

然后将该arraylist转换为数组

将 ArrayList<String> 转换为 String[] 数组

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

于 2013-04-27T19:08:51.117 回答
0

最好的选择是使用惰性初始化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_dataXmldata

于 2013-04-27T19:09:27.640 回答