java list二分查找_java中的ArrayList和LinkedList的二分查找速度比 | 学步园
发布日期:2021-06-24 14:56:53 浏览次数:3 分类:技术文章

本文共 1167 字,大约阅读时间需要 3 分钟。

package tian;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Collections;

import java.util.LinkedList;

import java.util.List;

import java.util.Random;

/**

*

* ArrayList和LinkedeList的二分查找查找时间比较

*

*/

public class TestList{

public static final int N=50000;

public static List values;

static{

//定义一个数组

Integer vals[]=new Integer[N];

Random r=new Random();

int currval=0;

for(int i=0;i

vals[i]=currval;

//获得随机数,这样就可以确保是数组是升序

currval+=r.nextInt(100)+i;

}

//返回一个受指定数组支持的固定大小的列表

values=Arrays.asList(vals);

}

static long timeList(List lst){

//获得当前时间

long start=System.currentTimeMillis();

for(int i=0;i

//二分查找,获得index,此方法要求list为升序,如果没有对列表进行排序,则结果是不确定的

int index=Collections.binarySearch(lst, values.get(i));

//判断找出来的位置是否为对应的位置,

if(index!=i){

System.out.println("**出错了**");

}

}

//算出所花时间

return System.currentTimeMillis()-start;

}

public static void main(String args[]){

System.out.println("ArrayList消耗时间:"+timeList(new ArrayList(values)));

System.out.println("LinkedList消耗时间:"+timeList(new LinkedList(values)));

//  第一次运行

//  ArrayList消耗时间:47

//  LinkedList消耗时间:74781

//  第二次运行

//  ArrayList消耗时间:32

//  LinkedList消耗时间:72687

//时间不是固定的,但是不管你运行多少次,都可以看得出两者时间比

}

}

转载地址:https://blog.csdn.net/weixin_33509600/article/details/114801793 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java图片的数据类型是_java中用Blob的数据类型向数据库插入图片
下一篇:java jdk win10 1335_win10下安装java jdk,tomcat

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月28日 12时24分28秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章