for 循环 效率 问题

dzy_pb 2009-02-26 09:40:12
有三个list wapList smsList mmsList
list都是map map<String,double>String主要是cid

现在要循环出来cid sms mms wap 和总收入 的值
一般做法
for(Map wapMap:wapList){
String wapCid=String.valueOf(wapMap.get("CID");
for(Map smsMap:smsList){
String smsCid=String.valueOf(smsMap.get("CID");
if(wapCid.equals()){
for(Map mmsMap:mmsList){
String mmsCid=String.valueOf(mmsMap.get("CID");
}
}
}
}
...全文
250 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
weizhaozhe 2009-02-27
  • 打赏
  • 举报
回复
这样遍历好些吧!
String keys[] = Map.getKeys();
然后通过遍历keys完成你的遍历。
小强提包包 2009-02-27
  • 打赏
  • 举报
回复
我知道得只能用内存得形式去考虑FOR得效率
比如二维数组,a[5][6]
提供两种遍历得形式
for (int i = 0; i < 5; i ++) {
for (int j = 0; j < 6; j ++) {
输出a[i][j]
}
}

for (int i = 0; i < 6; i ++) {
for (int j = 0; j < 5; j ++) {
输出a[j][i]
}
}
两种方式,谁得效率高? 由于二维数组是顺序存放的,当然是顺序遍历得快,但是第二种确实按列遍历,就是再寻找下一个元素时,会跳着查找,效率明显降低。
junxiao_1988 2009-02-27
  • 打赏
  • 举报
回复
没研究过
fosjos 2009-02-27
  • 打赏
  • 举报
回复
如果真要考虑效率,就不要用map
用数组或普通list

用Map<String,Integer>保存"CID"对应的下标,一次取出下标后就可以从数组中得到了
qgmzhfj 2009-02-26
  • 打赏
  • 举报
回复
看具体的条件了 ,如果就找一个,找到了,就跳出。如果实在是多层,建议重新设计下。
JustLook_ 2009-02-26
  • 打赏
  • 举报
回复
效率 没系研究过..
zhuzhusany 2009-02-26
  • 打赏
  • 举报
回复
取出来之后干嘛

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧