1

i have an arraylist of objects (list1) it contains seat_no, an image and its id. How do i iterate through list1 and store every data to another list. provided that the seat_no. matches the index of the another list (list2) which has a fixed size of 50. Should i create another object class? pls help...

example:

List1 contains

|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 should contain

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

here's my code

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 Answers 2

1

No. Java ArrayList supports null value and it maintain insertion order. you can insert null where there is object available with index.

An ordered collection (also known as a sequence). The user of this interface has precise control over where in the list each element is inserted. The user can access elements by their integer index (position in the list), and search for elements in the list.

Resizable-array implementation of the List interface. Implements all optional list operations, and permits all elements, including null. In addition to implementing the List interface, this class provides methods to manipulate the size of the array that is used internally to store the list. (This class is roughly equivalent to Vector, except that it is unsynchronized.)

ex : - you have this objects - 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);

So your list will contain - obj1, obj2, obj3, obj4, null, null, obj7,...

Sign up to request clarification or add additional context in comments.

Comments

1

It's easier to create a new list:

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

1 Comment

thanks! I'm close enough! but how do i set this so that it will limit the size of the list2 to 50. for example list1 contains 40, i want to store all the 40 elements of the list1 to list2 and the remaining 10 will be "" or null. but in my case right now my list stops at 40 it wont continue up to 50..

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.