Эта программа была домашним заданием. Мы уже закончили и готовы идти. Мне было интересно, если есть более обтекаемый способ написания этой программы? Программа называется Interleave, и она берет два ArrayLists и объединяет их так, что каждый второй элемент в первом происходит из второго ArrayList. Звучит просто, и мы использовали Итератор, чтобы пройти и добавить необходимые элементы. Но код БЛОК. Мне кажется, что должен быть лучший способ написать это, верно? Заранее спасибо.
import java.util.*;
public class Interleave
{
public static void main(String[] args)
{
ArrayList<Integer> a1 = new ArrayList<Integer>();
Collections.addAll(a1, 10, 20, 30);
ArrayList<Integer> a2 = new ArrayList<Integer>();
Collections.addAll(a2, 4, 5, 6, 7, 8, 9);
System.out.println(a1);
System.out.println(a2);
System.out.println(interleave(a1, a2));
ArrayList<String> list = new ArrayList<String>();
String[] words =
{ "how", "are", "you?" };
for (String s : words)
{
list.add(s);
}
}
public static ArrayList<Integer> interleave(ArrayList<Integer> a1,
ArrayList<Integer> a2)
{
Iterator<Integer> it = a2.iterator();
int i = 1;
while (it.hasNext())
{
int val = it.next();
if (a1.size() >= i)
{
a1.add(i, val);
} else
{
a1.add(val);
}
i += 2;
}
return a1;
}
}