Write a method public static ArrayList merge(ArrayList a, ArrayList b) that merg
ID: 3672088 • Letter: W
Question
Write a method
public static ArrayList merge(ArrayList a, ArrayList b)
that merges two array lists, alternating elements from both array lists. If one array
list is shorter than the other, then alternate as long as you can and then append the
remaining elements from the longer array list. For example, if a is
1 4 9 16
and b is
9 7 4 9 11
then merge returns the array list
1 9 4 7 9 4 16 9 11
Please use the template below and use the number from above: Dr.java
/**
* Auto Generated Java Class.
*/
import java.util.ArrayList;
public class arrayListLab
{
public static void main(String[] args)
{
ArrayList a = new ArrayList();
ArrayList b = new ArrayList();
// Initialize array list a to some values
for (int i = 0; i < 4; i++)
{
a.add((i + 1) * (i + 1));
}
// Initialize array list b to some values
b.add(9);
b.add(7);
b.add(4);
b.add(9);
b.add(11);
b.add(21);
System.out.println("ArrayList b is "+b);
System.out.println("ArrayList a is " +a);
System.out.println("merge returns "+merge(a,b));
}
public static ArrayList merge(ArrayList x, ArrayList y)
{
// create a merging algorithm and code.
ArrayList temp = new ArrayList(x.size()+y.size());
for(Integer i :x)
{
temp.add(i);
}
for(Integer i : y)
{
temp.add(i);
}
return(temp);
}
}
Explanation / Answer
import java.util.ArrayList;
public class HelloWorld
{
public static void main(String[] args)
{
ArrayList a = new ArrayList();
ArrayList b = new ArrayList();
// Initialize array list a to some values
for (int i = 0; i < 4; i++)
{
a.add((i + 1) * (i + 1));
}
// Initialize array list b to some values
b.add(9);
b.add(7);
b.add(4);
b.add(9);
b.add(11);
b.add(21);
System.out.println("ArrayList b is "+b);
System.out.println("ArrayList a is " +a);
System.out.println("merge returns "+merge(a,b));
}
public static ArrayList merge(ArrayList x, ArrayList y)
{
ArrayList temp = new ArrayList(x.size()+y.size());
int i=0,j=0,x_size,y_size;
x_size = x.size();
y_size = y.size();
for(;i<x_size || j<y_size;)
{
if(i<x_size)
{
temp.add(x.get(i));
i++;
}
if(j<y_size)
{
temp.add(y.get(j));
j++;
}
}
return(temp);
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.