2016-11-15 162 views
4

我有一個小問題,關於如何創建未知大小的陣列。 我想最好的方法是使用java.util.ArrayList;我的問題是,有什麼區別:未知大小的陣列

ArrayList client_Catalog = new ArrayList<>(); 

而且

List<> list = new ArrayList<>(); 

順便說一下我的節目我試圖創建一個空的列表,其中我要去商店的客戶信息,所以,對象我不知道最後的大小。

+0

對於初學者來說,既不能編譯......但是你會在看「什麼是原始類型,爲什麼我們應該避免它」以及「編程接口」中找到安慰。 – Makoto

+0

這兩行之間的區別與創建未知大小的數組有什麼關係? – user2357112

回答

2

沒有長度未知的數組。你可以有一個固定長度的數組或一個靈活大小的List

側此言
請記住,String[]可以容納任何大小的字符串和數組是可以改變的數組的引用,但你不能追加它。您只能將以前的內容複製到較大的陣列,然後填寫剩下的地方。

ListInterfaceArrayList是它的一個實現。

ArrayList client_Catalog = new ArrayList<>(); 

說:讓client_CatalogArrayList,讓它爲空第一。在另一方面,你必須:

List<> list = new ArrayList<>(); 

它說讓listList的任何實現。它可以是ArrayList,LinkedList或任何實現它。您唯一保證的是該項目將具有來自List界面的所有方法。

現在該如何處理仿製藥。 Listgeneric。有一天,有人認爲沒有理由對每種數據類型實施List,並決定引入泛型。你必須聲明這個列表是什麼類型。這是用那些<>括號完成的。

例如,創建StringArrayList是你寫的:

ArrayList<String> myList = new ArrayList<>(); 

由於它只是一個Q &一個區域,我不會教你的一切,但我的回答有大約列出了一些基本知識。我還決定鏈接一些官方教程和文檔,以幫助您學習。以防萬一您希望我擴展某些內容,請在評論中提問。

0

任何選項都可以滿足您的要求。 最好使用List接口作爲方法的返回類型。在這種情況下,它將抽象出列表的實際實現,即該方法的調用者不需要知道實際的實現。

-1

之間

ArrayList client_Catalog = new ArrayList<>(); 

List<> list = new ArrayList<>(); 

會不會有沒有任何區別。兩者都會按照你的習慣和工作方式進行。唯一的區別是在第二個例子中,不僅可以有ArrayList。但也例如LinkedList或實現List interface的其他對象。

我會在你的情況下,選擇上面,以確保它始終是一個ArrayList如果你想依靠它100%。