Сначала написал так (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;