Effective Java 阅读笔记 第七章(方法)

来源:互联网 发布:淘宝怎么进去卖家中心 编辑:程序博客网 时间:2024/04/20 07:45

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));}}


例如打印一个数组,数组是基本类型的对象(非基本累心用asList这种多参数方式还是可以打印出想要的数组的)

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));}}





原创粉丝点击