Tôi có một danh sách khoảng 100.000 nhân viên trong Java. Bây giờ tôi muốn xóa một đối tượng nhân viên cụ thể khỏi danh sách một cách nhanh chóng. Những cách có thể để làm điều đó mà không cần lặp lại toàn bộ danh sách là gì? (Nếu tôi lặp lại từng đối tượng, so sánh các chi tiết sau đó xóa: kịch bản này mất nhiều thời gian)Làm thế nào để xóa đối tượng Danh sách cụ thể trong Java?
Trả lời
Bạn cần tìm phương tiện nhanh chóng. Bạn có thể
- đã ArrayList được sắp xếp và sau đó thực hiện tìm kiếm nhị phân với Collections.binarySearch
O(log N)
Lưu ý: thực sự loại bỏ một phần tử từ một ArrayList làO(n)
Trong khi LinkedList nhưO(1)
cho loại bỏ, một tìm kiếm nhị phân trên nó sẽ là vô nghĩa tức là chậm hơn nhiều so vớiO(N)
- bạn có thể có Tập hợp băm nhân viên thay thế và việc xóa sẽ là
O(1)
khấu hao. Bạn có thể sử dụngLinkedHashSet
nếu bạn muốn giữ lại một số thứ tự như thứ tự chèn. - bạn có thể làm cho đối tượng có thể thay đổi và có trường như
enabled
mà bạn đặt thànhfalse
thay vì thực sự xóa đối tượng đó. Bạn có thể loại bỏ nó sau đó là một công việc hàng loạt tại một số thời gian (qua đêm hoặc vào cuối tuần)
@TimBiegeleisen SO không phải là Quora mặc dù https://www.quora.com/Is-it-true-that-after-Brexit-Pluto-will-be-a-planet- ở Anh-một lần nữa;) –
Bây giờ tôi muốn xóa một đối tượng người lao động cụ thể từ danh sách ...
Bạn có thể chỉ sử dụng List.remove để làm điều này
... một cách nhanh chóng
Trong thực tế, thậm chí mặc dù việc xóa mục có thể là hoạt động O(1)
, lặp lại qua toàn bộ thời lượng của danh sách là O(n)
và khi bạn bị phản ứng, không phải là rất nhanh.
Tôi cảm thấy rằng vấn đề của bạn sẽ được phục vụ tốt hơn bằng sức mạnh của băm băm. Điều này có thời gian tra cứu và loại bỏ liên tục. Lớp học LinkedHashMap có thể phù hợp với nhu cầu của bạn. Nó duy trì thứ tự chèn giống như một danh sách liên kết, nhưng nó cũng có chèn và xóa thời gian liên tục.
- 1. Xóa các đối tượng cụ thể khỏi danh sách
- 2. Xóa đối tượng khỏi danh sách đối tượng trong python
- 3. Java 8 - Cách chuyển danh sách mảng thành Danh sách đối tượng lớp cụ thể
- 4. Làm thế nào để chuyển đổi đúng Danh sách các đối tượng cụ thể thành Gson?
- 5. Xóa danh sách các đối tượng khỏi danh sách khác
- 6. Thay thế đối tượng trong danh sách đối tượng
- 7. Làm thế nào để loại bỏ đối tượng cụ thể khỏi ArrayList trong Java?
- 8. Làm thế nào để sắp xếp một danh sách các đối tượng java?
- 9. Làm thế nào để có được một đối tượng có nguồn gốc cụ thể trong Danh sách <T>?
- 10. Làm thế nào để chuyển đổi danh sách các đối tượng thành danh sách giao diện?
- 11. Cách tốt nhất để xóa đối tượng khỏi Danh sách
- 12. Làm thế nào để lặp lại Danh sách mảng đối tượng và đặt thành một danh sách đối tượng khác trong java 8?
- 13. Làm thế nào để sắp xếp danh sách các đối tượng của một thành viên cụ thể?
- 14. Đối tượng Java trong Arraylist hoặc Danh sách
- 15. Xóa một mục cụ thể khỏi danh sách bằng LINQ
- 16. làm thế nào để so sánh hai danh sách, trường hợp đối tượng trong python
- 17. Làm thế nào để đạt được danh sách list.list để sao chép danh sách trong smooks
- 18. làm thế nào để thêm một đối tượng danh sách <T> để
- 19. Làm thế nào để xóa đối tượng trong JSON?
- 20. Làm thế nào để xóa đối tượng con trong NHibernate?
- 21. Danh sách tổng hợp các đối tượng trong Java
- 22. JAXB: Làm thế nào để sắp xếp các đối tượng trong danh sách?
- 23. Làm thế nào để trích xuất từ một danh sách các đối tượng một danh sách các thuộc tính cụ thể?
- 24. Cách sắp xếp danh sách các đối tượng theo một trường cụ thể trong C#?
- 25. Trong Java, làm thế nào để chuyển đổi một danh sách các đối tượng thành mảng byte?
- 26. Làm thế nào để đưa một đối tượng vào danh sách loại chung trong F #
- 27. Javascript: Làm thế nào để lặp qua danh sách các đối tượng trong Model
- 28. Java8: giá trị tổng từ lĩnh vực cụ thể của các đối tượng trong danh sách
- 29. Chuyển đổi danh sách các đối tượng thành danh sách các đối tượng tùy chọn trong Java
- 30. Làm thế nào để chuyển đổi danh sách đối tượng enity thành đối tượng trang trong Spring Mvc Jpa?
UR_object_List.remove (đối tượng) –