典型的"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了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)