数组方法到LinkedList方法的转换



我在重写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之一。

最新更新