我正在做一个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");
如何使用此提示代码计算时间?
答案 0 :(得分:0)
我建议使用Dropwizard-metrics这样的库,您可以使用%AUTO_JOB_NAME%.%AUTORUN%
来计算时间,并Timer
在控制台中打印值。您也可以使用其他记者来提取数据点并将其可视化。