不懂就问,在循环里面取对象或者MAP的值,怎样效率高?

在循环里面取对象或者MAP的值,怎样效率高?
是先在循环外部定义出来然后set到对象属性中,
还是直接获取呢?
比如:

 String username = "";
        String sex = "";
        String age = "";
        User user = null;
        for (Map<String, String> map : mapList) {

            username = map.get("username");
            sex = map.get("sex");
            age = map.get("age");
            user = new User;
            user.setSex(sex);
            user.setAge(age);
            user.setUsername(username);


        }

或者直接从MAP里取出来:

 User user = null;
        for (Map<String, String> map : mapList) {
            user = new User;
            user.setSex(map.get("sex"));
            user.setAge(map.get("age"));
            user.setUsername(map.get("username"));
        }

这两种哪种效率高一些?
又如果不是MAP,是对象呢?

2个回答

首先你这块代码有问题的,一般循环出来的结果都放在list里面,用list去add user。
效率问题肯定是后者要高一些,不过也高不了多少,几乎一样的。

qq_39019765
打杂的程序员 回复tiankbhz: 记得采纳哦。
6 个月之前 回复
tiankbhz
天K 回复打杂的程序员: 好的,受教了,谢谢老哥
6 个月之前 回复
qq_39019765
打杂的程序员 回复tiankbhz: 不必把关注点放在这。如果用到的特别多 新建个对象也可以,也美观,少了直接取出来就好了。
6 个月之前 回复
qq_39019765
打杂的程序员 回复tiankbhz: 其实是差不多的,要说快慢,估计后者那种写法快一点。因为哈希表属于直接查找算法,在查询过程中,不需要进行过多的关键字比较,所以HashMap的查询效率很高,不会存在效率问题。
6 个月之前 回复
tiankbhz
天K 谢谢老哥,如果有多个对象需要用到这个MAP里的同一数据呢?比如 user.setSex了之后,还有很多对象需要这个MAP中的SEX数据,也是直接取效率高吗?
6 个月之前 回复

不建议的是循环体内消耗资源。你这两种代码本质上没什么区别。循环一万次估计也就差个几毫秒。map
内hash碰撞不大到一定程度的话取数据都是很快的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问