Java 测量ArrayList和LinkedList上的插入操作所用的时间
我想在中创建方法,看看创建10000个Java 测量ArrayList和LinkedList上的插入操作所用的时间,java,arraylist,linked-list,Java,Arraylist,Linked List,我想在中创建方法,看看创建10000个ArrayList和LinkedList需要多少时间。我在找什么 public class Solution { public static void main(String[] args) { System.out.println(getTimeMsOfInsert(new ArrayList())); System.out.println(getTimeMsOfInsert(new LinkedList(
ArrayList
和LinkedList
需要多少时间。我在找什么
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)
{
insert10000(list);
}
public static void insert10000(List list)
{
for (int i=0;i<10000;i++)
{
list.add(0, new Object());
}
}
}
公共类解决方案
{
公共静态void main(字符串[]args)
{
System.out.println(getTimeMsOfInsert(newarraylist());
System.out.println(getTimeMsOfInsert(newlinkedlist());
}
公共静态long GetTimesOfInsert(列表)
{
插入10000(列表);
}
公共静态void insert10000(列表)
{
对于(int i=0;i您的代码有一个编译错误
,因此我修复了它们并添加了一些代码可能对您有所帮助
所以你可以这样做:
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) {
return getInsertTime(list);
}
public static long getInsertTime(List list) {
long start = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
list.add(new Object());
}
return System.currentTimeMillis() - start;
}
}
公共类解决方案{
公共静态void main(字符串[]args){
System.out.println(getTimeMsOfInsert(newarraylist());
System.out.println(getTimeMsOfInsert(newlinkedlist());
}
公共静态long GetTimesOfInsert(列表){
返回getInsertTime(列表);
}
公共静态长getInsertTime(列表){
长启动=System.currentTimeMillis();
对于(int i=0;i<10000;i++){
添加(新对象());
}
返回系统.currentTimeMillis()-开始;
}
}
您的代码有一个编译错误
,因此我修复了它们,并添加了一些可能对您有帮助的代码
所以你可以这样做:
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) {
return getInsertTime(list);
}
public static long getInsertTime(List list) {
long start = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
list.add(new Object());
}
return System.currentTimeMillis() - start;
}
}
公共类解决方案{
公共静态void main(字符串[]args){
System.out.println(getTimeMsOfInsert(newarraylist());
System.out.println(getTimeMsOfInsert(newlinkedlist());
}
公共静态long GetTimesOfInsert(列表){
返回getInsertTime(列表);
}
公共静态长getInsertTime(列表){
长启动=System.currentTimeMillis();
对于(int i=0;i<10000;i++){
添加(新对象());
}
返回系统.currentTimeMillis()-开始;
}
}
codegym社区的您好:)下面是我的解决方案。您可以轻松使用System.currentTimeMillis()
codegym社区的您好:)下面是我的解决方案。您可以轻松使用System.currentTimeMillis()
您的代码无法编译…而且您从不花时间进行操作…您可以使用探查器(netbeans附带探查器)或用户系统.nanoTime()来进行您自己的探查。此外,在开始微基准测试之前阅读以下内容也很重要:我们如何知道您“在寻找”什么?您的代码不会编译…而且您从不花时间进行操作…您可以使用探查器(netbeans附带了探查器)或用户系统.nanoTime()来进行您自己的探查。此外,在启动微基准测试之前阅读此内容也很重要:我们如何知道您在“寻找”什么?不要使用System.currentTimeMillis()
用于测量经过的时间。当系统的时钟正在调整时(例如通过NTP),此时钟可能会跳变,甚至向后跳变。用于测量经过的时间。@霍尔格感谢此提示。不要使用system.currentTimeMillis()
用于测量经过的时间。当系统的时钟正在调整时(例如通过NTP),该时钟可能会跳变,甚至向后跳变。用于测量经过的时间。@Holger感谢您的提示。