Проблема: Arraylist объектов, с объектами, которые также имеют Arraylist внутри - PullRequest
0 голосов
/ 27 января 2011

У меня есть arraylist для каких-то объектов. Эти объекты имеют некоторые атрибуты, такие как строки и некоторые целые числа. Но также, arraylist объектов другого типа.

Сначала я создаю второй объект. И сгруппируйте их в массив таких объектов. Затем я проверяю, пуст ли этот массив. Если это не так, то я создаю другой объект и передаю ему первый arrayList. И поместите это в другого arraylist. Итак, в конце у меня есть arraylist объектов одного типа. И все эти объекты также имеют arraylist (и несколько других значений, как некоторые строки и целые числа) с другими объектами.

Проблема в том, что в конце, когда я пытаюсь получить доступ к массиву внутри одного из этих объектов, он пуст.

Не знаю, что я пытаюсь сделать в невозможном. Я объявил обоих arraylists как arraylists объектов. Может быть, я должен объявить их как arraylist arraylists?

Заранее спасибо.

Отредактировано:

Было бы что-то вроде этого:

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;
    }
}

Это будет первый объект (его объекты ArrayList2, но «<>» не появляется).

class Obj2 {
    String string;
    int integer;

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

То же, что и раньше с "<>".

Затем с помощью асинхронной задачи я начинаю поиск с веб-страницы. Я создаю немного Ob2. У меня может быть от 0 до, может быть, 15. Поэтому, если я получу их, поместите их все в ArrayList из Objs2. Затем я создаю Obj1 и передаю ему его атрибуты string и integer, а также ArrayList из Objs2. А после этого поместите этот Obj1 в ArrayList of Objs1.

В конце я могу иметь, например, 12 Ojs1 в ArrayList. И у каждого из этих Obj1 есть ArrayList Objs2, с 1 по 15 Objs2. Из асинктаск я возвращаю ArrayList of Objs1.

Надеюсь, вы понимаете, о чем я. Также мой английский не поможет. хехе

Еще раз спасибо.

Отредактировано 2:

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

У objs1Downloaded, как я уже сказал, будет 12 objs1, например. И у каждого объекта obj1 может быть массив arjl2 с 1 до 15 объектов obj2. Это более или менее идея.

Еще раз спасибо и извините за правки и так далее.

1 Ответ

2 голосов
/ 27 января 2011

Вы, вероятно, должны опубликовать часть своего кода, чтобы дать нам идею, это не должно быть проблемой, если вы сделаете это так:

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, содержащий один внутренний объект,содержит еще один ArrayList of Strings *.

* не проверено, общая идея должна быть хорошей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...