java 中Collection 比较

public class ListTest {
private static Random random = new Random();
public static void main(String[] args){
ArrayList<String> arraylist = new ArrayList();
LinkedList<String> linkedlist = new LinkedList();
HashMap<String,Object> map = new HashMap();
HashSet<String> set = new HashSet();
for(int i=0;i<50000;i++){
String r = randomString();
arraylist.add(r);
linkedlist.add(r);
map.put(r, r);
set.add(r);
}

System.out.println("arraylist size "+arraylist.size());
System.out.println("linkedlist size "+linkedlist.size());
System.out.println("map size "+map.size());
System.out.println("set size "+set.size());


System.out.println("------");
long begin = System.currentTimeMillis();
for(int j=0;j<arraylist.size();j++){
arraylist.contains(arraylist.get(j));
}
System.out.println("arraylist time "+(System.currentTimeMillis()-begin));


begin = System.currentTimeMillis();
for(int j=0;j<arraylist.size();j++){
linkedlist.contains(arraylist.get(j));
}
System.out.println("linkedlist time "+(System.currentTimeMillis()-begin));

begin = System.currentTimeMillis();
for(int i=0;i<100;i++){
for(int j=0;j<arraylist.size();j++){
map.containsKey(arraylist.get(j));
}
}
System.out.println("map time "+(System.currentTimeMillis()-begin));

begin = System.currentTimeMillis();
for(int i=0;i<100;i++){
for(int j=0;j<arraylist.size();j++){
set.contains(arraylist.get(j));
}
}
System.out.println("set time "+(System.currentTimeMillis()-begin));

}
protected static String randomString() {
return Long.toString(random.nextLong(), 36);
}
}
在我的机器上,结果如下:
arraylist size 50000
linkedlist size 50000
map size 50000
set size 50000
------
arraylist time 49328
linkedlist time 57641
map time 625
set time 578


可见呀,如果是在集合中查询某个对象是否存在,是HashSet的速度最快,而且比List快将近1万倍。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值