1

オブジェクトの配列リスト(list1)があり、seat_no、画像、およびそのIDが含まれています。list1 を繰り返し処理し、すべてのデータを別のリストに保存するにはどうすればよいですか。ただし、seat_no. 固定サイズが 50 の別のリスト (list2) のインデックスと一致します。別のオブジェクト クラスを作成する必要がありますか? 助けてください...

例:

List1 に含まれるもの

|seat_no | id     | image            |
======================================
| 1      | 001    | R.drawable.chair |
| 2      | 002    | R.drawable.chair |
| 3      | 003    | R.drawable.chair |
| 4      | 004    | R.drawable.chair |
| 7      | 005    | R.drawable.chair |
| 10     | 006    | R.drawable.chair |

List2 には次を含める必要があります

|index   | id     | seat_no |
=============================
| 1      | 001    | 1       |
| 2      | 002    | 2       |
| 3      | 003    | 3       |
| 4      | 004    | 4       |
| 5      |"blank" |"blank"  |
| 6      |"blank" |"blank"  |
| 7      | 005    | 7       |
| 8      |"blank" |"blank"  |
| 9      |"blank" |"blank"  |
| 10     | 006    | 10      |

これが私のコードです

main.java

ArrayList<HashMap<String, String>> take = new ArrayList<HashMap<String, String>>();

        try 
        {
            JSONObject jsonArray = new JSONObject(result);

            JSONArray info = jsonArray.getJSONArray("info");

            list1 = new ArrayList<ViewGridObject>();

            for (int i = 0; i < info.length(); i++) 
            {
                HashMap<String, String> map = new HashMap<String, String>();
                JSONObject e = info.getJSONObject(i);

                map.put("id", String.valueOf(i));
                map.put("sid", e.getString("id"));
                map.put("flag", Integer.toString(seat[0]));
                map.put("seat_no", e.getString("seat_no"));
                take.add(map);

                list1.add(new ViewGridObject(e.getString("id"), R.drawable.chair, e.getString("seat_no")));


            }

ViewGridObject.java

public class ViewGridObject 
{
public String stud_id, seat_no;
int chair;

public ViewGridObject(String stud_id, int chair, String seat_no)
{
    this.stud_id = stud_id;
    this.chair = chair;
    this.seat_no = seat_no;

}
}
4

2 に答える 2

1

いいえ。JavaArrayListはnull値をサポートし、挿入順序を維持します。インデックスで使用可能なオブジェクトがある場合は、nullを挿入できます。

順序付けられたコレクション(シーケンスとも呼ばれます)。このインターフェースのユーザーは、リストのどこに各要素を挿入するかを正確に制御できます。ユーザーは、整数インデックス(リスト内の位置)で要素にアクセスし、リスト内の要素を検索できます。

Listインターフェースのサイズ変更可能な配列の実装。すべてのオプションのリスト操作を実装し、nullを含むすべての要素を許可します。このクラスは、Listインターフェイスの実装に加えて、リストを格納するために内部的に使用される配列のサイズを操作するためのメソッドを提供します。(このクラスは、同期されていないことを除いて、Vectorとほぼ同等です。)

例:-あなたはこのオブジェクトを持っています-ViewGridObject1,ViewGridObject2, ViewGridObject3, ViewGridObject4,ViewGridObject7;

list1.add(ViewGridObject1);
list1.add(ViewGridObject2);
list1.add(ViewGridObject3);
list1.add(ViewGridObject4);
list1.add(null);
list1.add(null);
list1.add(ViewGridObject7);

したがって、リストには-が含まれますobj1, obj2, obj3, obj4, null, null, obj7,...

于 2012-12-01T11:34:45.180 に答える
1

新しいリストを作成する方が簡単です。

List<ViewGridObject> list2 = new ArrayList<ViewGridObject>();
int i = 0;
for (ViewGridObject o : list1) {
    for (i++; !o.seat_no.equals(i + ""); i++) {
        list2.add(new ViewGridObject(null, 0, i + ""));
    }
    list2.add(o);
}
于 2012-12-01T11:52:21.570 に答える