Вычислить разницу во времени при добавлении объекта в список массивов по сравнению со связанным списком

Я делаю проект класса Java, в котором я создал как массив, так и связанный список из предыдущего задания, а вторая половина проекта такова:

Calculate the time (in milliseconds) it takes to add the 5th object to the middle (index 1 or 2) of the ArrayList (1 point)

Calculate the time (in milliseconds) it takes to add the 5th object to the middle (index 1 or 2) of the LinkedList (1 point)

Print out both of these time calculations on the screen to see which one is faster. (the one with less time is faster). Then, write a comment in your code to explain in your own words why one insert was faster than the other insert (1 point)

Вот что я написал до сих пор:

package pugs;

import java.util.ArrayList;

public class Demo {

public static void main(String[] args) {
    DogNode headObj;
    DogNode nodeObj1;
    DogNode nodeObj2;
    DogNode nodeObj3;
    DogNode nodeObj4;
    DogNode currObj;

    Dog dog1 = new Dog("Todd", 2.1, 21);
    Dog dog2 = new Dog("Nice Pete", 2.3, 25);
    Dog dog3 = new Dog("Pat", 2.0, 18);
    Dog dog4 = new Dog("Ray Smuckles", 1.5, 25);
    Dog dog5 = new Dog("Roast Beef", 2.5, 17);

    headObj = new DogNode(dog1);

    nodeObj1 = new DogNode(dog2);
    headObj.insertAfter(nodeObj1);

    nodeObj2 = new DogNode(dog3);
    nodeObj1.insertAfter(nodeObj2);

    nodeObj3 = new DogNode(dog4);
    nodeObj2.insertAfter(nodeObj3);

    nodeObj4 = new DogNode(dog5);
    headObj.insertAfter(nodeObj4);

    currObj = headObj;
    while (currObj != null) {
        currObj.printNodeData();
        currObj = currObj.getNext();
    }

    ArrayList<Dog> list = new ArrayList<Dog>();

    list.add(dog1);
    list.add(dog2);
    list.add(dog3);
    list.add(dog4);
    list.add(1,dog5);

    }

}

Мой профессор намекнул:

  long startTime= System.nanoTime();
  //code to insert here
  long endTime = System.nanoTime();
  double difference = (endTime - startTime) / 1e6;
  System.out.println("Time to insert: " + difference + " ms\n");

Как использовать этот код подсказки для расчета времени?

Странное задание. Знает ли ваш профессор, что такой выбор времени даст результаты, которые почти бесполезны? Размер проблемы слишком мал.

user9455968 01.05.2018 19:12
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
111
1

Ответы 1

Я бы рекомендовал использовать такую ​​библиотеку, как Dropwizard-метрики, где вы можете использовать Timer для расчета времени и console reporter для печати значений в консоли. Вы также можете использовать другие репортеры для извлечения точек данных и их визуализации.

Для получения дополнительной информации, Начало работы с dropwizard-metrics

Другие вопросы по теме