我在重写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循环是个大问题。我似乎找不到一个能正常工作的索引。如有任何帮助,我们将不胜感激!
对于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之一。