Question: In my assignment the third step is to Call the method merge to merge the two lists in list1 so that the list1 **remains sorted.**

I write my code but it doesn't work well , the output show wrong because it important to be sorted 

```
 public static void merge (ArrayList<Integer> list1, ArrayList<Integer> list2)
 {
        int i;
        int n=list1.size();
        int pos , j=0;

        for (pos =0 ;pos<n ; pos++)
        {
            for ( i=0 ; i<n ; i++)
                if (list1.get(j)>list2.get(pos))
                    list1.add(pos,list2.get(pos));
                else 
                    j++;
       } 
 }

```

Answer: 
```
public static void merge (ArrayList<Integer> list1, ArrayList<Integer> list2)
{
    list1.addAll(list2);
    Collections.sort(list1);
}

```
After you merge the lists, call sort method as below.

```
Collections.sort(list1); // carries out natural ordering.

```

If you need a customized sorting, use Comparator object

```
Collections.sort(list1, comparatorObject);

```

Check [Comparator example](http://www.mkyong.com/java/java-object-sorting-example-comparable-and-comparator/) for more details.

Here is your modified code:

```
 public static void merge (ArrayList<Integer> list1, ArrayList<Integer> list2)
 {
    list1.add(list2); //merges list 2 to list1
    Collections.sort(list1); //natural ordering
 }

```