Write a method called alternate that accepts two Lists of in

Write a method called alternate that accepts two Lists of integers as its parameters and returns a new List containing alternating elements from the two lists, in the following order: First element from first list First element from second list Second element from first list Second element from second list Third element from first list Third element from second list ... If the lists do not contain the same number of elements, the remaining elements from the longer list should be placed consecutively at the end. For example, for a first list of (1, 2, 3, 4, 5) and a second list of (6, 7, 8, 9, 10, 11, 12), a call of alternate(listl, list2) should return a list containing (1, 6, 2, 7, 3, 8, 4, 9, 5, 10, 11, 12). Do not modify the parameter lists passed in. This is a method problem. Write a Java method as described. Do not write a complete program or class; just the method(s) above.

Solution

Here is the code for you:

import java.util.ArrayList;
import java.util.Arrays;
public class MergeArrayListsAlternately {
public static void main(String[] args)
{
ArrayList a = new ArrayList();
a.add(1);
a.add(2);
a.add(3);
a.add(4);
a.add(5);
ArrayList b = new ArrayList();
b.add(6);
b.add(7);
b.add(8);
b.add(9);
b.add(10);
b.add(11);
b.add(12);
System.out.println(alternate(a, b));
  
}
public static ArrayList alternate(ArrayList a, ArrayList b)
{
ArrayList comb = new ArrayList(a.size() + b.size());
int j = 0;
int k = 0;
int l = 0;
int max = Math.max(a.size(),b.size());
for (int i = 0; i < max; i++)
{
if (j < a.size())
{
comb.add(l++, a.get(j++));
}
if (k < b.size())
{
comb.add(l++, b.get(k++));
}
}
return comb;
  
}
}

 Write a method called alternate that accepts two Lists of integers as its parameters and returns a new List containing alternating elements from the two lists,

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site