计算将对象添加到数组列表与链接列表的时差

时间:2018-05-01 17:09:42

标签: java arraylist

我正在做一个Java类项目,我从之前的任务中创建了一个数组和一个链表,项目的后半部分就是这样:

  

计算将第5个对象添加到ArrayList的中间(索引1或2)所需的时间(以毫秒为单位)

     

计算将第5个对象添加到LinkedList(1点)的中间(索引1或2)所需的时间(以毫秒为单位)

     

在屏幕上打印出这两个时间计算,以查看哪一个更快。 (时间越少,速度越快)。然后,在你的代码中写一个注释,用你自己的话解释为什么一个插入比另一个插入更快(1点)

这是我到目前为止所写的内容:

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");

如何使用此提示代码计算时间?

1 个答案:

答案 0 :(得分:0)

我建议使用Dropwizard-metrics这样的库,您可以使用%AUTO_JOB_NAME%.%AUTORUN%来计算时间,并Timer在控制台中打印值。您也可以使用其他记者来提取数据点并将其可视化。

有待进一步参考,Getting started with dropwizard-metrics