No. 41 慎用重载
同样的remove方法set中也会自动对int对象装箱,但是list中却变成了对index的索引
package com.anialy.TestProj;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class App {
public static void main( String[] args ){
Set<Integer> set = new HashSet<Integer>();
List<Integer> list = new ArrayList<Integer>();
for(int i=-2; i<2; i++){
set.add(i);
list.add(i);
}
for(int i=0; i<2; i++){
set.remove(i);
list.remove(new Integer(i));
}
System.out.println(set);
System.out.println(list);
}
}
只有通过人为的装箱(装为Integer之后,才能够在list里remove)
No.42 慎用可变参数
可变参数方法的每次调用都会导致进行一次数组分配和初始化
eg.
package com.anialy.TestProj;
public class App {
private static int getSum(int... args){
int sum = 0;
for(int arg: args){
sum += arg;
}
return sum;
}
public static void main( String[] args ){
System.out.println(getSum(1,2,3,4));
}
}
package com.anialy.TestProj;
import java.util.Arrays;
public class App {
public static void main( String[] args ){
int[] digits = {1,2,3};
System.out.println(Arrays.asList(digits));
System.out.println(Arrays.toString(digits));
}
}