簡體   English   中英

java Arraylist 移除元素

[英]java Arraylist remove elements

假設 ArrayList 中有 10 個元素,如果我從中間刪除了 2 個元素,那么 arraylist 將包含 8 個元素,但當時容量會是 10 個或減少到 8 個。

API 指出:

每個 ArrayList 實例都有一個容量。 容量是用於存儲列表中元素的數組的大小。 它總是至少與列表大小一樣大。 隨着元素添加到 ArrayList,其容量會自動增長。 除了添加元素具有恆定的攤銷時間成本這一事實之外,沒有指定增長策略的細節

並且您始終可以在調試器中憑經驗對此進行測試。 刪除兩個元素后,查看支持ArrayList的數組,看看它的大小。 最有可能的是10。

該行為取決於 ArrayList 的實現。 你不能依賴這種實現細節。 您必須考慮的唯一一件事是容量始終大於或等於列表中的元素數。 如果您需要容量正好是元素的數量(因為您可能想減少 memory 的使用),您必須使用 function trimToSize()明確詢問它。

我認為它可能會改變,因為假設我們默認創建新的數組列表 JVM 在 memory 中分配 10 個連續的位置。如果你放 8 或 2 或零,它將是相同的。

但是如果你放了 15 個元素,那么它會增加 20 個 memory 位置。但是如果你再次低於 10,它應該釋放 memory 並減少到 10 個默認大小。

這是動態分配。對於 1000 個元素列表,如果您要刪除元素並減少到 2,那么它必須釋放 memory 是合乎邏輯的。它應該取決於刪除的元素數量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM