我无法重写Array List循环方法以使用LinkedList。
这是我到目前为止所得到的:
public static int[] stutter(LinkedList<Integer> noStutter) {
int[] result = new int[5 * 2];
for (int i = 0; i < 5; i++) {
result[2 * i] = noStutter[i];
result[2 * i + 1] = noStutter[i];
}
System.out.println("Stutter: " + Arrays.toString(result));
return result;
}
这是原始的数组列表
public static int[] stutter(int[] noStutter) {
int[] result = new int[noStutter.length * 2];
for (int i = 0; i < noStutter.length; i++) {
result[2 * i] = noStutter[i];
result[2 * i + 1] = noStutter[i];
}
System.out.println("Stutter: " + Arrays.toString(result));
return result;
for循环是个大问题。我似乎无法获得正常工作的索引。 任何帮助将不胜感激!
答案 0 :(得分:3)
使用LinkedList
,不能按索引访问。那是慢。
相反,请使用Iterator
。
Iterator<Integer> iter = list.iterator();
for (int i = 0; iter.hasNext(); i+=2) {
result[2*i] = iter.next();
result[2*i + 1] = result[2*i]; // don't call next twice...
}
您会在任何 Java书籍或教程中找到Iterator
。它们是Java中最核心的概念/ API之一。