ЗАДАЧА 08.06.01.
package com.javarush.test.level08.lesson06.task01;
import java.util.*;
/* Создать два списка LinkedList и ArrayList
Нужно создать два списка – LinkedList и ArrayList.
*/
public class Solution
{
public static Object createArrayList()
{
List<Object> list = new ArrayList<Object>();
return list;
}
public static Object createLinkedList()
{
List<Object> list1 = new LinkedList<Object>();
return list1;
}
}
ЗАДАЧА 08.06.02.
package com.javarush.test.level08.lesson06.task02;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/* Провести 10 тысяч вставок, удалений
Для arrayList и linkedList провести 10 тысяч вставок, удалений, а также вызовов get и set.
*/
public class Solution
{
public static void main(String[] args) throws Exception
{
// ArrayList
ArrayList arrayList = new ArrayList();
insert10000(arrayList);
get10000(arrayList);
set10000(arrayList);
remove10000(arrayList);
// LinkedList
LinkedList linkedList = new LinkedList();
insert10000(linkedList);
get10000(linkedList);
set10000(linkedList);
remove10000(linkedList);
}
public static void insert10000(List list)
{
for (int i = 0; i < 10000; i++)
{
list.add(i, i);
}
}
public static void get10000(List list)
{
for (int i = 0; i < 10000; i++)
{
list.get(i);
}
}
public static void set10000(List list)
{
for (int i = 0; i < 10000; i++)
{
list.set(i, i);
}
}
public static void remove10000(List list)
{
for (int i = 0; i < 10000; i++)
{
list.remove(0);
}
}
}
ЗАДАЧА 08.06.03.
package com.javarush.test.level08.lesson06.task03;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
/* Измерить сколько времени занимает 10 тысяч вставок для каждого списка
Измерить, сколько времени занимает 10 тысяч вставок для каждого списка.
Метод getTimeMsOfInsert должен вернуть время его исполнения в миллисекундах.
*/
public class Solution
{
public static void main(String[] args)
{
System.out.println(getTimeMsOfInsert(new ArrayList()));
System.out.println(getTimeMsOfInsert(new LinkedList()));
}
public static long getTimeMsOfInsert(List list)
{
//напишите тут ваш код
Date timeBefore = new Date();
insert10000(list);
//напишите тут ваш код
Date timeAfter = new Date();
long msDelay = timeAfter.getTime() - timeBefore.getTime();
return msDelay;
}
public static void insert10000(List list)
{
for (int i=0;i<10000;i++)
{
list.add(0, new Object());
}
}
}
ЗАДАЧА 08.06.04.
package com.javarush.test.level08.lesson06.task04;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
/* Измерить сколько времени занимает 10 тысяч вызовов get для каждого списка
Измерить, сколько времени занимает 10 тысяч вызовов get для каждого списка.
Метод getTimeMsOfGet должен вернуть время его исполнения в миллисекундах.
*/
public class Solution
{
public static void main(String[] args)
{
System.out.println(getTimeMsOfGet(fill(new ArrayList())));
System.out.println(getTimeMsOfGet(fill(new LinkedList())));
}
private static List fill(List list)
{
for(int i = 0; i < 11; i++)
{
list.add(new Object());
}
return list;
}
public static long getTimeMsOfGet(List list)
{
Date timeBefore = new Date();
get10000(list);
//напишите тут ваш код
Date timeAfter = new Date();
long msDelay = timeAfter.getTime() - timeBefore.getTime();
return msDelay;
//напишите тут ваш код
}
public static void get10000(List list)
{
if (list.isEmpty()) return;
int x = list.size() / 2;
for (int i = 0; i < 10000; i++)
{
list.get(x);
}
}
}
ЗАДАЧА 08.06.05.
package com.javarush.test.level08.lesson06.task05;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/* Четыре метода
Реализовать 4 метода. Они должны возвращать список, который лучше всего подходит для выполнения данных операций (быстрее всего справится с большим количеством операций). Ничего измерять не нужно.
*/
public class Solution
{
public static List getListForGet()
{
ArrayList<Object> list = new ArrayList<>();
return list;
}
public static List getListForSet()
{
ArrayList<Object> list = new ArrayList<>();
return list;
}
public static List getListForAddOrInsert()
{
LinkedList<Object> list = new LinkedList<>();
return list;
}
public static List getListForRemove()
{
LinkedList<Object> list = new LinkedList<>();
return list;
}
}
Leave A Comment