Java性能问题(菜鸟送分来了) 有一个Student的实体javabean, Student有两个属性分别是id,name 有一个List里面存了几十万个Student 写一段代码将id相同的Student对象找出来,并打印在控制台.重点考虑程序效率 请问怎么做最好 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【cuiyunshow】截止到2008-07-02 10:49:03的历史汇总数据(不包括此帖):发帖的总数量:4 发帖的总分数:80 结贴的总数量:4 结贴的总分数:80 无满意结贴数:0 无满意结贴分:0 未结的帖子数:0 未结的总分数:0 结贴的百分比:100.00% 结分的百分比:100.00% 无满意结贴率:0.00 % 无满意结分率:0.00 % 敬礼! 把你的list的内容插入数据库group by 一下 list的来源如果是数据库的话。 主要是java代码迭带筛选时怎么写,可以让效率更高些 虑一下重。再把list放在session中,用到的时候去取。这样就不用再去数据库中取了,提高效率。但记得涉及增、删、改操作要及时更新session中维护的list lista listb把 lista 取一个c放入到 listb中遍历lista 寻找有没有与c相同的 ,有的话重复删除lista的c,没有的话删除lista的c listb的c lista listb 把 lista 取一个c放入到 listb中 遍历lista 寻找有没有与c相同的 ,有的话删除lista的c继续,没有的话删除lista的c listb的c继续 list 能放那么多数据吗?怀疑! 用Collections里的排序和查找方法,应该满足基本需求了如果要更好的效率,可能你就要改存储方案了,List应该是不行了 自己写个类去实现 java.util.Comparator 类怎么样,应该会好点吧 如果你用Collections的方法的话你就不用自己把List转成数组,因为Collections的方法会帮你做这件事的 你要么写个新类实现 java.util.Comparator 或者让你的Student类实现Comparable 不要乱说!!!几十万的的数据放在session里,有没有搞错! 这也不一定的,我看他Student类就id和name两个域,所以单独一个类应该不会很大,50byte差不多了,就算100万数据量也不会超过50M,一般服务器应该没问题的而且这个数据应该会是全局共享的,所以就当是做成内存数据库吧,可以的,至少我觉得可以 HashMap 是否能够满足你的需求能 list存取数据是没有限制的,只是java虚拟机使用内存的默认太小是128M,大概list存到2-3w条就提示错误了,把java虚拟机的内存改大一点就可以了。 第一种可以如5楼那样利用一个SESSION,第二种我觉得可以在加一个索引这样就要快得多。 对java的动态代理始终没搞懂啊(在学Spring这一块接触到) struts2在Action中如何赋值给实体bean out.println("\r\n")是什么意思? 问一个菜鸟问题: IP的理解问题 当鼠标在一条数据的上面的时候,就出现一个层,展示了详细的数据 jsp页面表格中的时间显示 是不是在<head></head>中间定义的变量和函数都是全局的? jdbc连oracle的问题?? Applet中如何读取本地文件,还有搜索某目录中所有文件??? jsp读写文件的问题,从a文件读出写入b文件 js,jsp,java 各自如何读取资源文件内容。。。。。。。。。。。
楼主【cuiyunshow】截止到2008-07-02 10:49:03的历史汇总数据(不包括此帖):
发帖的总数量:4 发帖的总分数:80
结贴的总数量:4 结贴的总分数:80
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:0.00 % 无满意结分率:0.00 %
敬礼!
group by 一下
把 lista 取一个c放入到 listb中
遍历lista 寻找有没有与c相同的 ,有的话重复删除lista的c,没有的话删除lista的c listb的c
把 lista 取一个c放入到 listb中
遍历lista 寻找有没有与c相同的 ,有的话删除lista的c继续,没有的话删除lista的c listb的c继续
如果要更好的效率,可能你就要改存储方案了,List应该是不行了
因为Collections的方法会帮你做这件事的
或者让你的Student类实现Comparable
几十万的的数据放在session里,有没有搞错!
所以单独一个类应该不会很大,50byte差不多了,就算100万数据量也不会超过50M,一般服务器应该没问题的
而且这个数据应该会是全局共享的,所以就当是做成内存数据库吧,可以的,至少我觉得可以