HashMap<String,String>与for合作查询和for嵌套循环查询的差别和效率

1 篇文章 0 订阅
1 篇文章 0 订阅

先虚拟有这样一个需求:一个考生成绩结果的显示由科目号作为条件进行查询条件获得,而显示的时候,不可能显示科目号,那样不很直观的让用户知道是哪个科目多少分

先定义一个实体model :

    public class km{
 private String kmh;  //科目号
 private String kmm;  //科目名
 
 private void setKmh(String kmh){
  this.kmh = kmh;
 }
 private String getKmh(){
  return kmh;
 }
 
 private void setKmm(String kmm){
  this.kmm = kmm;
 }
 
 private String getKmm(){
  return kmm;
 }
}

 

现在通过一个方法 获得一个保存了很多科目号的结果集List<km> kmList;

保存要获取科目名的科目号List<String> string = new ArrayList<String>(){"02","06","08"};

(假如有01,02,03,04,05,06,07,11,13,14,15,16这些科目号,而实际只需要获取02,06,08的科目名)

现在我们要从 这个结果集中挑出所需要的数据

1.用HashMap<String,String>保存kmList数据

HashMap<String, String> hskm = new HashMap<String, String>();

 for(km k : kmList){

  if (!hskm.containsKey(km.getKmh())) {   //过滤掉已经保存的
      hskm.put(km.getKmh(), km.getMc());
     }

}

现在就是进行挑选了

StringBuilder sss = new StringBuilder();

for(String str : string){

   if(hskm.containsKey(str)){     //存在这样的科目号

       sss.append("'+hskm.get(str));       //把存在科目号的科目名给保存在sss中

}

 

2.用for嵌套循环

StringBuilder sss = new StringBuilder();

for(String str : string){               

    for(km k : kmList){

         if(str.equals(k.getKmh)){

           sss.append("'+k.getKmm());

}

 

可见用HashMap<String,String>和for合作的效率远远大于for嵌套

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值