import java.util.*; public class Ex16Interleave { public static void interleave(ArrayList list1, ArrayList list2) { int j = 0; for (int i = 0; i < list1.size() && j < list2.size(); i++,j++) { Integer n = list2.get(j); list1.add(i+1,n); i++; } // if list2 is longer than list1, j will be < list2.size() // in that case, you'll append list2's remaining elements for (; j < list2.size(); j++) { Integer n = list2.get(j); list1.add(n); } } public static void main(String[] args) { Integer[] a1 = { 10, 20, 30 }; ArrayList list1 = new ArrayList( Arrays.asList(a1) ); Integer[] a2 = { 4, 5, 6, 7, 8 }; ArrayList list2 = new ArrayList( Arrays.asList(a2) ); Integer[] a3 = { 10, 20, 30, 40, 50 }; ArrayList list3 = new ArrayList( Arrays.asList(a3) ); Integer[] a4 = { 6, 7, 8 }; ArrayList list4 = new ArrayList( Arrays.asList(a4) ); System.out.println(list1.toString()); System.out.println(list2.toString()); interleave(list1, list2); System.out.println(list1.toString()); System.out.println(); System.out.println(list3.toString()); System.out.println(list4.toString()); interleave(list3, list4); System.out.println(list3.toString()); } }