Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 测量ArrayList和LinkedList上的插入操作所用的时间_Java_Arraylist_Linked List - Fatal编程技术网

Java 测量ArrayList和LinkedList上的插入操作所用的时间

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(

我想在中创建方法,看看创建10000个
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感谢您的提示。