ЗАДАЧА 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