Задачу я решил, но не могу понять что выводится на экран и какая последовательность работы компилятора.
public class Solution {
public static void main(String[] args) {
System.out.println(getInsertTimeInMs(new ArrayList()));
System.out.println(getInsertTimeInMs(new LinkedList()));
}
public static long getInsertTimeInMs(List list) {
Date startTime=new Date();
insert10000(list);
Date finishTime=new Date();
long msTime=finishTime.getTime()-startTime.getTime();
return msTime;
}
Евгений
8 уровень
Объясните пожалуйста как это работает?
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Алексей Коваленко
26 апреля 2019, 12:19полезный
1) вызов функции getInsertTimeInMs(List list)
2)Начало отсчета - Date startTime=new Date(); (При создании Date автоматически приравнивается ко времени вызова конструктора)
3)Добавляешь тысячу элементов insert10000(list);
4)Конец отсчета - Date finishTime=new Date();
5) Находишь разницу long msTime=finishTime.getTime()-startTime.getTime();(getTime возвращает время в мс начиная с 1980 года попмойму)
6)вызов system.out
+17
Евгений
26 апреля 2019, 12:24
большое спасибо
0
Евгений
26 апреля 2019, 12:29
если я правильно понимаю:
System.out.println(getInsertTimeInMs(new ArrayList()));
System.out.println(getInsertTimeInMs(new LinkedList()));
обе эти строки возвращают время затраченное на добавление элементов.
только первая строка выводит всё через Array, а вторая через Linked?
то есть задача предложена нам для того что бы увидеть наглядно разницу скорости работы двух списков?
+2
Алексей Коваленко
26 апреля 2019, 13:03
Да, пример чтобы показать разницу в затратах на выполнение одной и той же операции
+3
Анна Ивашенцева
28 ноября 2019, 11:46
только у меня ответ 0 и 0?
0