如何遍历arraylist并存储到另一个arraylist?

时间:2012-12-01 11:31:32

标签: java arraylist

我有一个对象的arraylist(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;

}
}

2 个答案:

答案 0 :(得分:1)

没有。 Java ArrayList支持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,...

答案 1 :(得分: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);
}