陣列與列表的優缺點

發布 科技 2024-06-30
8個回答
  1. 匿名使用者2024-01-30

    陣列和列表,我們來參考一下陣列和鍊表在資料結構概念中的優缺點。

    如果指的是陣列類(或介面)和列表介面的優缺點,就很難理解了。

    陣列,它在記憶體上提供連續空間。 鍊表的記憶體位址可以是不連續的,每個鍊表的節點包括原始記憶體和下乙個節點的資訊(乙個在乙個方向上,在雙向鍊表的情況下兩個)。

    陣列比鍊表更好:

    1.記憶體空間不太重要,因為鍊表節點會附加有關前乙個或兩個下乙個節點的資訊。 但是陣列在構建時是固定的。 因此,也有可能是建立的陣列太大或不足,導致記憶體問題。

    2.陣列中的資料是隨機訪問的。 但是,鍊表不具有隨機可訪問性。

    這個很容易理解。 陣列是記憶體中的連續空間。 例如,如果陣列位址介於 100 到 200 之間,並且每個元素占用兩個位元組,則 100 到 200 之間的任何偶數都是陣列元素的位址。

    3.找到速度。 這也是由於記憶體位址的連續性。 不再有羅索。

    鍊表比陣列更好:

    1.插入和刪除操作。 如果在陣列中間插入乙個元素,則該元素之後的所有元素的記憶體位址將向後移動。

    刪除也是如此。 只有在插入或刪除資料的最後乙個元素時,它才會更快。 鍊表只需要更改需要更改的節點中的節點資訊即可。

    無需更改節點的記憶體位址。

    2.記憶體位址的利用率。 無論您的記憶體中有多少空間,如果不能一次為陣列提供所需的空間,則表明記憶體不足,磁碟空間整理的原因之一就在這裡。 然而,鍊表可以是去中心化的空間位址。

    3.鍊表比陣列具有更好的可擴充套件性。 這是因為陣列占用的空間量是固定的。 如果它已滿,則無法擴充套件。 您只能建立具有更大空間的新陣列。 另一方面,鍊表不是固定的,可以很容易地擴充套件。

    建議房東閱讀一些關於資料結構的書籍是很重要的。

  2. 匿名使用者2024-01-29

    陣列是乙個連續的空間,具有隨機可訪問性,訪問速度比較快,但是插入和刪除速度很慢,列表訪問從頭開始查詢,搜尋速度很慢,但是插入和刪除只需要移動指標,所以它速度很快。

  3. 匿名使用者2024-01-28

    房東想說陣列和列表的區別,對吧?? ~

  4. 匿名使用者2024-01-27

    1.陣列型別的變數必須在宣告它們的同時例項化(至少初始化陣列的大小),而 arraylist 可以先宣告。

    2.陣列只能儲存同構物件,而 ArrayList 可以儲存異構物件。

    同態物件是同一型別的物件,例如宣告為 int 和字串的陣列只能儲存字元資料,但宣告為物件的陣列除外。

    ArrayList 可以儲存任何不同型別的資料(因為它包含裝箱的物件型別物件,這些物件實際上由 ArrayList 在內部使用)。"object items;"這樣的私有欄位來封裝物件)。

    3 如何儲存在 CLR 託管對中。

    陣列始終是連續儲存的,而陣列列表不一定是連續儲存的。

    4 初始化大小。

    陣列物件的初始化只需要指定,建立後陣列的大小是固定的,而陣列列表的大小可以動態指定,其大小可以在初始化時指定,也可以不指定,即物件的空間可以任意增加。

    5 Arrays 不能隨意新增和刪除專案,而 ArrayList 可以在任何地方插入和刪除專案。

    array 和 arraylist 之間的相似之處。

    1 都有乙個索引,即可以通過索引直接獲取和修改任何專案。

    2 他們建立的物件被放置在託管堆中。

    3 能夠列舉自身 (因為它們都實現 IENUMERABLE 介面) 。

    ArrayList 的一些功能。

    ArrayList 的 capacity 屬性的值會根據 ArrayList 中項的實際大小而變化。

    您可以使用 arraylist 類的 trimtoresize() 方法從 arraylist 例項中刪除空項以減少音量。

    在 C 語言中,建議嘗試使用 Paradigm Edition 的 ArrayList,即命名空間中的列表,這樣既保證了型別安全,又因為沒有裝箱和拆箱的過程,提高了物件處理的效率。

  5. 匿名使用者2024-01-26

    答:陣列的容量是固定的,一次只能獲取或設定乙個元素的值,而陣列列表或列表的容量可以根據需要自動擴充套件、修改、刪除或插入。

    陣列可以有多個維度,而 arraylist 或 list 總是只有乙個維度。 但是,您可以輕鬆建立陣列列表或列表列表。 特定型別的陣列(物件除外)的效能優於 ArrayList。

    這是因為 arraylist 的元素屬於物件型別; 因此,在儲存或檢索值型別時,通常會發生 bin 和 unbin 操作。 但是,當不需要重新分配時(即初始容量非常接近列表的最大容量),列表的效能與相同型別的陣列非常相似。

    在決定是使用 List 類還是 ArrayList 類(兩者都具有類似的功能)時,請記住 List 類的效能更好,並且在大多數情況下是型別安全的。 如果對列表類的型別 t 使用引用型別,則這兩個類的行為是相同的。 但是,如果對型別 t 使用值型別,則需要考慮實現和裝箱。

  6. 匿名使用者2024-01-25

    arraylist的底層由變長陣列維護,其大小不需要定義,如果長度不夠,會自動擴容到原來長度的兩倍;

    陣列的大小在定義時已經是乙個固定值,不會自動擴充套件,陣列的效率高於集合,各有側重。

    具體如下: 1.陣列。

    優點:記憶體連續,速度快,操作方便。

    缺點:定義陣列的長度不是很靈活,過長和過短都會造成問題。 新增、插入和刪除資料很不方便。

    例如:int i=new int[2];

    i[0]=111;

    i[1]=123;分配。

    i[1]=1234;修改。

    2. 設定陣列列表

    優點:命名空間的一部分。 大小是動態擴充套件和收縮的。

    宣告 ArrayList 物件時,無需指定該物件的長度。 ArrayList 繼承了 iList 介面,可以方便地新增、插入和刪除資料。

    缺點:當不同型別的資料插入到集合中時(arraylist將資料儲存為物件),資料處理時容易出現型別不匹配錯誤,使用時需要進行型別轉換過程,並且存在打包和拆箱操作,導致效能損失較大。

    例如:arraylist list = new arraylist();

    aa");list[1] = 123;修改。

    免職;

  7. 匿名使用者2024-01-24

    ArrayList 可變長度 儲存的資料型別變數 陣列使用型別和長度進行宣告。

  8. 匿名使用者2024-01-23

    arraylist:ArrayList 是使用此類時必須引用的命名空間的一部分,它繼承了 ilist 介面以提供資料儲存和檢索。 arraylist 物件的大小會根據其中儲存的資料動態擴充套件和收縮。

    因此,在宣告 ArrayList 物件時,無需指定該物件的長度。 所有新增的資料都是乙個物件,需要裝箱和拆箱才能使用。

    泛型列表:List 是乙個命名空間,因為 arraylist 存在型別不安全、打包拆箱等缺點,所以泛型的概念就出現了。 List 類是 ArrayList 類的泛型等效類,它的大部分用法類似於 ArrayList,因為 List 類也繼承了 iList 介面。

    最重要的區別是,當我們宣告乙個列表集合時,我們還需要為它宣告列表集合中資料的物件型別。

    簡單來說:它們都是集合,ArrayList T 型別不安全,因為新增的資料是物件型別的,所以需要裝箱和拆箱,效率低下。

    list:型別在申報時確定,因此型別安全,省去了打包和拆箱的過程,效率高於arraylist。

相關回答
7個回答2024-06-30

咖啡是世界三大飲料之一,它是一種由烘焙咖啡豆製成的飲料,是與可可和茶一起在世界上流行的主要飲料。 -咖啡富含游離脂肪酸、咖啡因、單寧酸等營養成分 -可減輕肌肉疲勞,消除疲勞 -咖啡還具有緩解宿醉的功能。

14個回答2024-06-30

優點:耐磨,不漏氣,不用擔心胎壓,還可以省去頻繁的後續維護。 >>>More

9個回答2024-06-30

牆布和牆紙到底有什麼區別?

14個回答2024-06-30

我見過的刷子一般都是聚酯漆,適合塗小面積的板材; 大面積仍然被塗漆。 輥塗一般是牆面乳膠漆輥塗,基本沒有缺點,無非是仔細看牆面的時候有輥塗,不過這是乙個小問題,現在這種方式變得自然,已經被人們所接受。 所謂的習慣變成了自然。

10個回答2024-06-30

優點:不僅美觀耐用,而且導熱係數最低。 在節能方面,它遠遠優於木窗、鐵窗和鋁合金窗,是最有效的密封手段。 >>>More