用于LinkedList方法转换的Array方法

时间:2013-11-30 16:03:46

标签: java for-loop arraylist linked-list

我无法重写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循环是个大问题。我似乎无法获得正常工作的索引。 任何帮助将不胜感激!

1 个答案:

答案 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之一。