java循环越跑越慢为什么?高手进

java循环越跑越慢为什么?高手进,第1张

慢的原因是你在对List的循环中使用了List的get函数.

典型的"Shlemiel喷涂算法",所以越跑越慢啊.

List里是一个链表,get方法会从头一个个地数,越到后面,数的时间就越长.所以会慢..

你应该修改方式,用下面的方法进行循环:

for(Iterator

it

=

list.iterator()

it.hasNext()

){

Map

map

=

(Map)it.next()

//

...

}

当然可行.我不知道你的理解是在什么地方切入的.但是这个问题不太需要涉及到JDBC也就是数据库的读写的内容.

实际上的理解你应该紧扣住"实体"这个关键点.JDBC只不过是达到目的的一个手段,实体Bean作为参数在不同的类之间传递才是关键.

我们举个例子,这个bank表简单的具有:ID, bank_name, address 这3个属性.而实际的项目中,往往一张表能有十几个字段甚至更多.

一开始的时候,程序员们都是这样来读取数据库: 例如这张bank表,从数据库把某一个ID=1的记录读出来以后,直接把3个字段值返回给调用该数据库类的方法(例如可以采用封装到一个数组中去的方法).这样当字段变多以后会变得非常的麻烦, 例如,很可能一不小心把返回的字段给弄颠倒了.

后来这样的方法进过改进,就成了现在的以实体类封装数据并进行传递的方式.例如一张订单表:你尽管可能觉得order_date和order_data这2个字段非常容易混淆.但是如果date是日期类型,data是String类型,那么你怎么也不可能把这2个值赋予给错误的属性.

那么在使用中,首先,你读出了数据之后,我们再拿bank表作例子,ID=1的表里的数据如下:ID=1,name=abc,address=nanjing,那么你实例化一个bank类,然后把这3个值一一 赋予对应的属性(调用set方法)

而在将这个实体类返回调用者之后,可以调用get方法来查看.

如果需要看具体的代码的话可以继续追问

.netlist在for循环添加数据太慢解决方法:

1、减少for循环的循环次数。

2、优化循环体内的代码,加快代码速度。

3、或把for循环改为foreach循环,循环变量i,改成事先计算好1到1000的数组,就不需要在for循环里面计算循环变量i了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/8008146.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存