java項目開發(fā)流程 List常用幾種方式?
List常用幾種方式?2. list的直接實現(xiàn)是兩個抽象類:abstractlist和abstractsequential list。Abstractlist盡可能地封裝了隨機訪問(如數組)的實現(xiàn),a
List常用幾種方式?
2. list的直接實現(xiàn)是兩個抽象類:abstractlist和abstractsequential list。Abstractlist盡可能地封裝了隨機訪問(如數組)的實現(xiàn),abstractsequential list盡可能地封裝了連續(xù)訪問(如鏈表)的實現(xiàn)。三。數組列表。直接父類是abstractlist。數據結構是一個大小可變的數組。它不是同步的。在一次大規(guī)模插入的情況下,最好先調用ensuracapacity(),以減少新空間的分配。它的iterate和listierater很快就會失敗。4鏈接列表。直接父類是abstractsquentiallist。數據結構為雙向鏈表,不同步。它同時實現(xiàn)了deque(雙向隊列)和queue(隊列)接口。同時,它還提供了push和pop堆棧操作的接口。它的iterate和listierater很快就會失敗。5Vector的直接父級是abstractlist,它與ArrayList具有相同的特性,只是它是線程同步的。6Stack的直接父對象是向量,它實現(xiàn)了Stack的數據結構。
為什么是List list = new ArrayList,而不直接用ArrayList?
List是接口,ArrayList是類。
ArrayList繼承并實現(xiàn)列表。List List=new arraylist()創(chuàng)建一個arraylist對象并將其追溯到列表。此時,它是一個列表對象。不能再使用ArrayList具有但list不具有的某些屬性和方法。ArrayList=new ArrayList()創(chuàng)建一個保留ArrayList所有屬性的對象。為什么通常使用list=new arraylist()而不是arraylist=new arraylist()?問題是list有多個實現(xiàn)類,比如LinkedList或vector。現(xiàn)在您正在使用ArrayList。也許有一天你需要切換到其他實現(xiàn)類?在這種情況下,您只需要更改這一行:List=newlinkedlist()其他使用List的代碼根本不需要更改。假設您開始使用ArrayList=new ArrayList(),您已經做了一些更改,特別是在使用特定于ArrayList的方法和屬性時。如果沒有特殊要求,最好使用list=newlinkedlist()來促進程序代碼的重構。這就是面向接口編程的優(yōu)點