從清單中刪除重複項
在 Java 中使用清單時,可能需要刪除重複元素。常見的嘗試是在新增元素之前使用 for 迴圈檢查每個元素是否已存在於清單中。但是,這種方法效率低且容易出錯。
問題:
您描述了在嘗試從 Customer 物件清單中刪除重複項時遇到的問題。您的程式碼使用 for 迴圈在新增客戶之前檢查客戶是否尚未出現在清單中。
解決方案:
提供的解決方案提供了更有效率和更有效率的解決方案。在保留清單原始順序的同時刪除重複項的簡潔方法。它利用 LinkedHashSet 類,該類根據插入順序維護元素的連結列表,並自動刪除重複項。
使用LinkedHashSet:
以下程式碼片段示範如何使用LinkedHashSet 刪除重複項同時保持順序:
<code class="java">List<Customer> depdupeCustomers = new ArrayList<>(new LinkedHashSet<>(customers));</code>
此行從客戶列表中創建一個新的LinkedHashSet,從而產生一組唯一的客戶。然後該集合將轉換回有序列表(ArrayList)。
修改原始列表:
如果您想要更改原始列表,可以使用以下程式碼:
<code class="java">Set<Customer> depdupeCustomers = new LinkedHashSet<>(customers); customers.clear(); customers.addAll(dedupeCustomers);</code>
此程式碼將列表轉換為LinkedHashSet ,刪除重複項,清除原始列表,然後將唯一元素添加回其中,從而有效地從原始列表中刪除重複項。
以上是如何在保持順序的同時從 Java 清單中刪除重複項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!