java中重要的幾個(gè)常用類 為什么是List list = new ArrayList,而不直接用ArrayList?
為什么是List list = new ArrayList,而不直接用ArrayList?List是一個(gè)接口,ArrayList是一個(gè)類。ArrayList繼承并實(shí)現(xiàn)列表。List List=new
為什么是List list = new ArrayList,而不直接用ArrayList?
List是一個(gè)接口,ArrayList是一個(gè)類。
ArrayList繼承并實(shí)現(xiàn)列表。List List=new arraylist()創(chuàng)建一個(gè)arraylist對(duì)象并將其追溯到列表。此時(shí),它是一個(gè)列表對(duì)象。不能再使用ArrayList具有但list不具有的某些屬性和方法。ArrayList=new ArrayList()創(chuàng)建一個(gè)保留ArrayList所有屬性的對(duì)象。為什么通常使用list=new arraylist()而不是arraylist=new arraylist()?問題是list有多個(gè)實(shí)現(xiàn)類,比如LinkedList或vector?,F(xiàn)在您正在使用ArrayList。也許有一天你需要切換到其他實(shí)現(xiàn)類?在這種情況下,您只需要更改這一行:List=newlinkedlist()其他使用List的代碼根本不需要更改。假設(shè)您開始使用ArrayList=new ArrayList(),您已經(jīng)做了一些更改,特別是在使用特定于ArrayList的方法和屬性時(shí)。這就是面向接口編程的優(yōu)點(diǎn)
Java中l(wèi)ist和ArrayList的區(qū)別在于:list是一個(gè)接口,list特性是有序的,它保證了元素按一定的順序保存。ArrayList是它的實(shí)現(xiàn)類,它是由array實(shí)現(xiàn)的列表。用法:例如:List=new arraylist(),原因是List等效于泛型實(shí)現(xiàn)。如果要更改列表的類型,只需:list=new linkedlist()//linkedlist也是list的實(shí)現(xiàn)類和ArrayList的兄弟類