Сначала написал так (countGet, countSet добавил после того, как не принимало решение) :
package com.javarush.task.task08.task0808;

import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;


public class Solution {
    public static void main(String[] args) {
        // ArrayList
        ArrayList arrayList = new ArrayList();
        insert10000(arrayList);
        get10000(arrayList);
        set10000(arrayList);
        remove10000(arrayList);

        LinkedList linkedList = new LinkedList();
        insert10000(linkedList);
        get10000(linkedList);
        set10000(linkedList);
        remove10000(linkedList);
        System.out.println("get: " + countGet);
        System.out.println("set: " + countSet);

    }
    static int countGet = 0;
    static int countSet = 0;

    public static void insert10000(List list) {
        for (int i = 0; i < 10000; i++) {
            list.add(i);
        }
    }

    public static void get10000(List list) {
        for (int i = list.size()-1; i >= 0; i--) {
            list.get(i);
            countGet++;
        }
    }

    public static void set10000(List list) {
        for (int i = list.size()-1; i >= 0; i--) {
            list.set(i, list);
            countSet++;
        }
    }

    public static void remove10000(List list) {
        for (int i = list.size()-1; i >= 0; i--)  {
            list.remove(i);
        }

    }
}
Ругался, что set и get должен вызываться по 10 тысяч раз. Исправил на это:
package com.javarush.task.task08.task0808;

import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;


public class Solution {
    public static void main(String[] args) {
        // ArrayList
        ArrayList arrayList = new ArrayList();
        insert10000(arrayList);
        get10000(arrayList);
        set10000(arrayList);
        remove10000(arrayList);

        LinkedList linkedList = new LinkedList();
        insert10000(linkedList);
        get10000(linkedList);
        set10000(linkedList);
        remove10000(linkedList);
        System.out.println("get: " + countGet);
        System.out.println("set: " + countSet);

    }
    static int countGet = 0;
    static int countSet = 0;

    public static void insert10000(List list) {
        for (int i = 0; i < 10000; i++) {
            list.add(i);
        }

    }

    public static void get10000(List list) {
        for (int i = 0; i < 10000; i++) {
            list.get(i);
            countGet++;
        }
    }

    public static void set10000(List list) {
        for (int i = 0; i < 10000; i++) {
            list.set(i, list);
            countSet++;
        }
    }

    public static void remove10000(List list) {
        for (int i = list.size()-1; i >= 0; i--)  {
            list.remove(i);
        }

    }
}
Валидация прошла, ответ засчитали. Почему первый вариант не принимался? В обоих случаях, переменные countGet и countSet были равны 20000;