Write a method called interleave that accepts two ArrayLists of integers a1 and
ID: 3825134 • Letter: W
Question
Write a method called interleave that accepts two ArrayLists of integers a1 and a2 as parameters and inserts the elements of a2 into al a1 alternating indexes. If the lists are of unequal length, the remaining elements of the longer list are left at the end of a1. For example, a1 stores [10, 20, 30] and a2 stores [4, 5, 6, 7, 8] the call of interleave (a1, a2); should change a1 to store [10, 4, 20, 5, 30, 6, 7, 8]. If a1 had stored [10, 20, 30, 40, 50] and a2 had stored [6, 7, 8], the call of interleave (a1, a2) would change a1 to store [10, 6, 20, 7, 30, 8, 40, 50].Explanation / Answer
Interleave.java
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Interleave {
public static void main(final String[] args) {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(10); numbers.add(20); numbers.add(30);
ArrayList<Integer> numbers2 = new ArrayList<Integer>();
numbers2.add(4); numbers2.add(5); numbers2.add(6); numbers2.add(7);
numbers2.add(8);
System.out.println("list1: " + numbers);
System.out.println("list2: " + numbers2);
interleave(numbers, numbers2);
System.out.println(" Combined: " + numbers);
ArrayList<Integer> numbers1 = new ArrayList<Integer>();
numbers1.add(10); numbers1.add(20); numbers1.add(30);numbers1.add(40);numbers1.add(50);
ArrayList<Integer> numbers21 = new ArrayList<Integer>();
numbers21.add(6); numbers21.add(7);
numbers21.add(8);
System.out.println("list1: " + numbers1);
System.out.println("list2: " + numbers21);
interleave(numbers1, numbers21);
System.out.println(" Combined: " + numbers1);
}
public static void interleave(
final List<Integer> list1,
final List<Integer> list2
)
{
int size1 = list1.size();
int i;
for(i = 0; i < size1; i++)
{
if (i < list2.size())
{
list1.add(2*i+1, list2.get(i));
}
}
for(; i < list2.size(); i++)
{
list1.add(list2.get(i));
}
}
}
Sample run
list1: [10, 20, 30]
list2: [4, 5, 6, 7, 8]
Combined: [10, 4, 20, 5, 30, 6, 7, 8]
list1: [10, 20, 30, 40, 50]
list2: [6, 7, 8]
Combined: [10, 6, 20, 7, 30, 8, 40, 50]
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.