java 二维数组 性能如何_java数组的性能分析

b62fd9921c6e9f816f95d0dbfa2366dc.png

对于初学者来说,学习数组时都会有这样的疑问,我们发现其实在存储数据上,是有很多方法可以替代数组的,所以对于数组的使用还持有怀疑态度。但是数组的存在就是为了提升保存数据的速度而产生的,对于这方面的优势,我们会通过下面的实例来进行说明,在此之前先来对其性能进行简单分析。

1、说明

数组和其他类型的容器有三个区别:效率、类型和保存基本类型的能力。在java中,数组是存储和随机访问对象引用序列的最有效的方式。数组在项目设计中的使用越来越少,不如List和set方便。但是数组在速度等方面还是有一些优势的,集合类的底层是通过数组实现的。

2、性能对比实例

下面利用数组和list用求和来做一下比较:Long time1 = System.currentTimeMillis();

for(int i = 0 ; i < 100000000 ;i++){

sum += arrays[i%10];

}

Long time2 = System.currentTimeMillis();

System.out.println("数组求和所花费时间:" + (time2 - time1) + "毫秒");

Long time3 = System.currentTimeMillis();

for (int i = 0; i < 100000000; i++) {

sum += list.get(i%10);

}

Long time4 = System.currentTimeMillis();

System.out.println("List求和所花费时间:" + (time4 - time3) + "毫秒");

--------------Output:

数组求和所花费时间:696毫秒

List求和所花费时间:3498毫秒

从上面的时间消耗上面来说,数组对于基本类型的求和计算的速度是集合的5倍左右。其实在list集合中,求和当中有一个致命的动作:list.get(i)。这个动作是进行拆箱动作,Integer对象通过intValue方法自动转换成一个int基本类型,在这里就产生了不必要的性能消耗。

所以在性能要求较高的场景中请优先考虑数组!

以上就是java数组的性能分析,通过实例的对比大家可以发现,数组在速度上是当之无愧的第一名,大家如果追求性能的话,要优先考虑数组的使用。更多Java学习指路:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值