标签:区别 pre col main 运算符重载 ++i class new print
对于For循环,如果能通过Java8中的Stream流表达式解决那就最好了,如果非要使用For循环,应该尽量减少对变量的重复计算和减少对变量的定义。
public class OptimizingCode { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } System.out.println("----------------优化-----------------"); //优化为 for (int i = 0, length = list.size(); i < length; ++i) { System.out.println(list.get(i)); } } }
优化点有两个:
1)先算出length的大小,这样list.size()只会调用一次,减少性能消耗。
2)使用++i替换原来的i++,在For循环中++i和i++对结果是没有区别,两者不同的地方在于++i 占用的空间比 i++ 要小,i++是多定义一个变量的,看看运算符重载可以知道是怎么回事。
int i=1; int a = i++; int a = ++i;
这时才有区别,第一个a是1,第二个a是2。
标签:区别 pre col main 运算符重载 ++i class new print
原文地址:https://www.cnblogs.com/liaowenhui/p/11189545.html