有人可以建议我选择哪个选项以及为什么?
List<MyObject> list = new ArrayList<MyObject>();
// insert some objects for it
1). for(int i = 0 ; i < list.size() ; i ++ ) {
System.out.println(list.get(i).getAttribute1());
System.out.println(list.get(i).getAttribute2());
}
2). for(int i = 0 ; i < list.size() ; i ++ ) {
MyObject obj = list.get(i);
System.out.println(obj.getAttribute1());
System.out.println(obj.getAttribute2());
}
是的,我知道......他们会产生相同的结果,但我想知道哪个选项效率更高,格式更好,广泛使用,为什么?我只注意到 第一个选项在它们之间写的时间比其他 更长。有什么建议吗?
答案 0 :(得分:1)
选项:1 获取在列表中使用两次,这是一个额外的过程
选项:2 只使用一个get来减少进程。因此,与选项相比,这更好:1
在两个选项中,将为for循环的每次迭代计算list.size()。为避免这种情况,您可以在迭代开始之前计算长度,
for (int i = 0, length = list.size(); i < length; i ++) {
// your code here
}
有效的方法是将每个循环用作
for (MyObject obj: list) {
System.out.println(obj.getAttribute1);
}