1. 程式人生 > >final型別的map或者arraylist修改資料

final型別的map或者arraylist修改資料

問題:
比如

final   Map  map =new  HashMap(); 

可以往map裡put資料

final   List  list =new  ArrayList();  

可以往list裡add資料
但是

 final   String    s =“123”; 

然後s就不可修改資料了

解答

        final List<String> list =  new ArrayList<String>();
        List<String> list1 = new ArrayList<
String>(); List<String> list2 = new ArrayList<String>(); list1 = list2; list = list1;//這行是不能通過編譯的

list定義為final是指該引用是final啦,但是list裡面的值不是final的,所以可以修改。
對List或map的add或put操作,沒有修改引用。而對字串的修改,是整個引用都要指向一個不同的字串了。
final 只是表示引用不可以修改,
如果你先寫

final   Map  map =new  HashMap(); 

再寫

map =new  HashMap(); 

同樣會報錯