问题:物体的Arraylist,其中的物体内部也有arraylist

时间:2011-01-26 22:50:08

标签: java android arraylist

我有某种物体的arraylist。这些对象有一些属性,如字符串和一些整数。而且,另一种物体的arraylist。

我先创建第二个对象。并将它们分组为这类物体的一个arraylist。然后我检查这个arraylist是否为空。如果不是,那么我创建另一个对象,并将其传递给第一个arrayList。并把它放在另一个arraylist。所以最后,我有一种对象的arraylist。所有这些对象,也有一个arraylist(和一些其他值,如一些字符串和整数)与其他对象。

问题是,最后,当我尝试访问其中一个对象中的arraylist时,它是空的。

不知道我试图做什么不可能。我已将两个arraylists都称为对象的arraylists。也许我应该将它们宣布为arraylists的arraylist?

提前致谢。

编辑:

会是这样的:

class Obj1 {
    String string;
    int integer;
    ArrayList objects2;

    public Obj1(String string, int integer, ArrayList objects2) {
        this.string = string;
        this.integer = integer;
        this.objects2 = objects2;
    }
}

这将是第一个对象(其ArrayList objects2,但“<>”不会出现)。

class Obj2 {
    String string;
    int integer;

    public Obj2(String string, int integer2) {
        this.string = string;
        this.integer = integer;
    }
}

与之前的“<>”相同。

然后,使用asynctask,我开始从网页搜索。我创建了一些Ob2。我可以从0到也许,15。所以,如果我得到一些,将它们全部放入Objs2的ArrayList中。然后我创建一个Obj1并传递它的属性字符串和整数,以及Objs2的ArrayList。然后,将此Obj1放入Objs1的ArrayList中。

最后,我可以将12个Ojs1放入ArrayList中。并且这些Obj1中的每一个都具有Objs2的ArrayList,具有1到15个Objs2。我从asynctask返回的是Objs1的ArrayList。

希望你理解我的意思。我的英语也不会帮忙。和合

再次感谢。

编辑2:

private class DownloadWork extends AsyncTask<URL, String, List<Obj1>> {
    ArrayList<Obj1> objs1Downloaded = new ArrayList<Obj1>();
    ArrayList<Obj2> objs2Downloaded = new ArrayList<Obj2>();
    //Some more stuff
    protected List doInBackground(URL... params) {
    for(...) {
        //Do some stuff here ...
    }
    return objs1Downloaded;
}

正如我所说,objs1Downloaded会有12个objs1。每个obj1都可以有一个objs2的arraylist,1到15个obj2。这或多或少都是这个想法。

再次感谢并抱歉编辑等。

1 个答案:

答案 0 :(得分:2)

你应该发布一些代码来给我们一个想法,这应该不是这样做的任何问题:

class Inner {
    String name;
    int num;
    ArrayList<String> stringList;

    public Inner(String name, int num, ArrayList<String> items) {
        this.name = name;
        this.num = num;
        this.stringList = items;
    }
}

ArrayList<Inner> outerList = new ArrayList<Inner>();

ArrayList<String> innerList = new ArrayList<String>();
for (int i = 0; i < 5; i++) {
    innerList.add("" + i);
}

outerList.add(new Inner("Name", 1, innerList));

这为您提供了一个包含单个内部对象的ArrayList,其中包含另一个Strings *的ArrayList。

*未经测试,一般的想法应该是好的。