主要对比scala 的for, while循环,以及和java for while循环作对比

scala代码

object TestScalaClass {
var maxindex = 100000 def testloopfor(): Unit ={
var beg = System.currentTimeMillis()
var sum = 0
for (i <- 0 to maxindex) {
sum += i
} println("value " + sum + " 耗时: " + (System.currentTimeMillis() - beg))
} def testswhile(): Unit ={
var beg = System.currentTimeMillis()
var sum = 0
var i = 0;
while (i < maxindex ){
i+=1
sum += i
}
println("value " + sum + " 耗时: " + (System.currentTimeMillis() - beg))
} def main (args: Array[String]) {
testswhile()
testloopfor()

  运行结果

time1

value 705082704 耗时: 338
value 705082704 耗时: 13

time2

value 705082704 耗时: 271
value 705082704 耗时: 11

time3

value 705082704 耗时: 289
value 705082704 耗时: 10

可以看出在scala 中 for循环比while循环慢接近30倍

java测试代码

	  long begtime = System.currentTimeMillis();
int i = 0;
int sum = 0;
for (i = 0 ; i < 100000; i++)
sum += i; long endtime = System.currentTimeMillis();
System.out.println("耗时: " + (endtime - begtime) ); // long begtime = System.currentTimeMillis();
// int i = 0;
// int sum = 0;
//
// while(i <100000){
// i++;
// sum += i;
// }
//
// long endtime = System.currentTimeMillis();
// System.out.println("耗时: " + (endtime - begtime) );

  在java中,for循环和while循环两者效率相差不大,运行时间集中在1-10之间,平均3ms左右 ,比scala的while循环也快几倍。

scala 测试hashmap

   def testhashmap(): Unit ={
print("\n scala hashmap \n")
var buf = new scala.collection.mutable.HashMap[String, String]()
var beg = System.currentTimeMillis()
var i = 0
while (i <= 100000){
buf += (i.toString -> i.toString)
i +=1
}
// for (i <- 0 to 100000){
// buf += (i.toString -> i.toString)
// }
buf += ("11" -> "11")
println(System.currentTimeMillis() - beg)
beg = System.currentTimeMillis()
//buf.foreach(f=>print("key: " + f._1 + "value :" + f._2 + "\t")) print("\n java hashmap \n")
var javamap = new JavaHashMap[String, String]() i = 0
while (i <= 100000){
javamap.put(i.toString, i.toString)
i +=1
}
//
// for(i <- 0 to 100000){
// javamap.put(i.toString, i.toString)
// } // for(i <- javamap.keySet().toArray()){
// print("key:= " + i + " value " + javamap.get(i) + "\t")
// }
println(System.currentTimeMillis() - beg)
}

使用while循环

scala hashmap
216

java hashmap
64

使用for循环

scala hashmap
299

java hashmap
89

while效率相对高点。

最新文章

  1. 我的2013 Q.E.D
  2. Ubuntu文件操作命令
  3. SCU3312 Stockholm Knights(最大流)
  4. 详细介绍java中的数据结构
  5. [poj2104] K-th Number (主席树)
  6. gridview合并单元格
  7. POJ1509 Glass Beads [后缀自动机]
  8. .addClass(),.removeClass(),.toggleClass()的区别
  9. 爬虫框架 Scrapy
  10. Chapter 8 The Simplest Plug-in Solution
  11. OpenStack 创建虚机过程简要汇总
  12. 微信小程序自定义音频组件,自定义滚动条,单曲循环,循环播放
  13. 简单实用UML关系图解
  14. Asp.net(C#)常用正则表达式封装
  15. php date()
  16. 【Android开发日记】之入门篇(五)——Android四大组件之Service
  17. C#编程(四)
  18. thinkphp5.0 微信扫码支付模式二
  19. vue2.0中的计算属性
  20. Spring MVC 中 AJAX请求并返回JSON

热门文章

  1. unity发布安卓lua路径不存在问题
  2. 1.2 js基础
  3. mysql中字段类型是datetime时比较大小问题
  4. smarty中函数的使用以及二维数组的使用
  5. OpenLayers 3 实现轨迹回放
  6. java中如何遍历实体类的属性和数据类型以及属性值
  7. [LeetCode]25. Reverse Nodes in k-Group k个一组翻转链表
  8. Oracle JDBC 连接卡死后 Connection Reset
  9. 如何修改Vue打包后文件的接口地址配置
  10. html+css动态篇