方法1:
List<User> userList = getUserList();
for (User user : userList)
{
System.out.println(user.getUserid);
}方法2:
List userList = (ArrayList)getUserList();
for (int i=0;i < userList.length; i++)
{
User user = (User)userList.get(i);
System.out.println(user.getUserid);
}请问以上那种方法效率更高呢?或者更好呢?
注:之前我都是用后一种方法,对第一种总觉得不美观,没用它,后来我看了不少其它人代码,感觉很多人都喜欢用第一种,而自己也
有点脱离大众的感觉啊,心里怪怪的,想改过来,但工作量要大,不改呢,要总觉得脱离主流,我测试过,感觉两者效率差不多(也许我数据
量比较小吧,没看出来),要有点不想改了,可是用第2种编译器老是有警告提示,又很不爽,各位大侠对这两种方法谈谈看法吧,谢了.
List<User> userList = getUserList();
for (User user : userList)
{
System.out.println(user.getUserid);
}方法2:
List userList = (ArrayList)getUserList();
for (int i=0;i < userList.length; i++)
{
User user = (User)userList.get(i);
System.out.println(user.getUserid);
}请问以上那种方法效率更高呢?或者更好呢?
注:之前我都是用后一种方法,对第一种总觉得不美观,没用它,后来我看了不少其它人代码,感觉很多人都喜欢用第一种,而自己也
有点脱离大众的感觉啊,心里怪怪的,想改过来,但工作量要大,不改呢,要总觉得脱离主流,我测试过,感觉两者效率差不多(也许我数据
量比较小吧,没看出来),要有点不想改了,可是用第2种编译器老是有警告提示,又很不爽,各位大侠对这两种方法谈谈看法吧,谢了.
更正:由于当时是随手写的,有点马虎,userList.length应为:getSize(),多谢qusic 的提醒.
在此链接上我已做了说明
不同的数据量,第二种方法比第一种方法快多少的问题时不一致的,从数据量由少到多,开始快的不明显,然后逐渐升高,达到一个峰值后下降,当逐渐接近内存极限的时候,突然提高。
综上所述,第二种效率更高,尤其在内存极限的时候,凸显第二种方法的优势。