這個程序是功課。我們已經完成了它,並且很好去。我想知道是否有更簡化的寫這個程序的方式?該程序被稱爲Interleave,它所做的是將兩個ArrayLists組合起來,以便第一個ArrayList中的每個其他元素都來自第二個ArrayList。聽起來很簡單,就是我們使用迭代器來添加必要的元素。但代碼是BLOCKY。在我看來,必須有更好的方式來寫這個,對吧?提前致謝。一個更有效的方法來編寫這個程序
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;
}
}
的Java,作爲一種語言,是相當冗長和 「塊狀」。習慣它。 ;-) – Santa 2011-05-18 18:31:26
@Santa,好吧,至少他的項目不涉及樂高積木,那會變得混亂。也許甚至'塊';) – FreeSnow 2011-05-18 18:32:59
你可以用一個for each-loop替換Iterator-while循環,這將爲你節省一條高高的線!;) – Jacob 2011-05-18 18:34:17