容器(集合框架) - 承載其他對(duì)象的對(duì)象
Collection
- List
- ArrayList
- LinkedList
- Set
基本類型 包裝類型(Wrapper class)
- byte ---> Byte ---> new Byte(1)
- short ---> Short
- int ---> Integer
- long ---> Long
- float ---> Float
- double ---> Double
- char ---> Character
- boolean ---> Boolean
從Java5開始容器可以指定泛型參數(shù)來(lái)限定容器中對(duì)象引用的類型
帶泛型參數(shù)的容器比不帶泛型參數(shù)的容器在使用上更方便
從Java7開始構(gòu)造器后面的泛型參數(shù)可以省略 - 鉆石語(yǔ)法
List兩個(gè)實(shí)現(xiàn)版本的比較
ArrayList - 底層實(shí)現(xiàn)是一個(gè)數(shù)組 使用連續(xù)內(nèi)存 可以實(shí)現(xiàn)隨機(jī)存取
LinkedList - 底層實(shí)現(xiàn)是一個(gè)雙向循環(huán)鏈表 可以使用碎片內(nèi)存 不能隨機(jī)存
但是增刪元素是需要修改引用即可 所以增刪元素時(shí)有更好的性能
容器中只能放對(duì)象的引用不能放基本數(shù)據(jù)類型
所以向容器中添加基本數(shù)據(jù)類型時(shí)會(huì)自動(dòng)裝箱(anto-boxing)
所謂自動(dòng)裝箱就是將基本數(shù)據(jù)類型處理成對(duì)應(yīng)的包裝類型
從Java8開始可以給容器發(fā)送forEach消息對(duì)原色進(jìn)行操作
forEach方法的參數(shù)可以使方法引用也可以使Lambda表達(dá)式