У меня есть список около 100 000 сотрудников на Java. Теперь я хочу быстро удалить конкретный объект сотрудника из списка. Каковы возможные способы сделать это без повторения всего списка? (Если я повторяю каждый объект, сравните данные, а затем удалите: этот сценарий занимает много времени)Как удалить определенный объект List в Java?
ответ
Вам нужно средство для быстрого поиска объекта. Вы можете
- имеют ArrayList сортируется, а затем выполнить бинарный поиск с Collections.binarySearch
O(log N)
Примечание: на самом деле удаления элемента из ArrayList являетсяO(n)
Хотя LinkedList, какO(1)
для удалить, двоичный поиск на нем будет бессмысленным т.е. намного медленнее, чемO(N)
- у вас может быть хеш Набор сотрудников вместо этого и удаление будет
O(1)
амортизировано. Вы можете использоватьLinkedHashSet
, если хотите сохранить некоторый порядок, например, порядок вставки. - вы можете сделать объект изменчивым и иметь поле, подобное
enabled
, которое вы установили наfalse
вместо фактического его удаления. Вы можете удалить его позже в качестве пакетного задания на некоторое время (на ночь или на выходные)
@TimBiegeleisen SO не является Quora, хотя https://www.quora.com/Is-it-true-that-after-Brexit-Pluto-will-be-a-planet- в-Великобритании-снова;) –
Теперь я хочу, чтобы удалить конкретный объект сотрудника из списка ...
Вы можете просто использовать List.remove сделать это
... быстро
на практике, даже хотя удаление элемента может быть операцией O(1)
, итерация по всей длине списка - O(n)
, и, как вы подозревали, не очень быстро.
Я чувствую, что ваша проблема лучше обслуживается силой хэш-карты. Это постоянное время поиска и удаления. Класс LinkedHashMap может удовлетворить ваши потребности. Он поддерживает порядок вставки так же, как и связанный список, но также имеет постоянную вставку и удаление времени.
- 1. Как удалить определенный json-объект в jsonarray в java
- 2. Как удалить определенный объект из ArrayList в Java?
- 3. Как удалить определенный элемент/объект в localStorage?
- 4. C++ Как удалить определенный объект в векторе?
- 5. Удалить объект из std :: list
- 6. Java: как удалить определенный объект при нажатии кнопки
- 7. Удалить определенный объект из Parse.com
- 8. Удалить определенный элемент из Arraylist в Java?
- 9. удалить определенный объект не работает в Java ArrayList
- 10. Как удалить определенный объект из массива
- 11. Как перечислить объект JAVA LIST из GSON
- 12. Как удалить определенный объект из результатов запроса анализа?
- 13. Объект Java в Arraylist или List
- 14. Java GC не собирает определенный объект
- 15. Как изменить определенный элемент в LInked List?
- 16. Удалить определенный объект GeoPoint из ItemizedOverlay?
- 17. three.js удалить определенный объект из сцены
- 18. Удалить определенный индекс из массива в java
- 19. Как удалить определенный объект из вашего списка в Laravel?
- 20. Как удалить определенный объект по документу в DocumentDB?
- 21. Как сериализовать объект коллекции List в Hadoop?
- 22. Как удалить/удалить определенный полигон в openGL?
- 23. Как получить определенный объект класса
- 24. Как удалить определенный символ?
- 25. Как удалить объект в списке Java?
- 26. Как удалить объект из ArrayList в Java?
- 27. Как добавить объект в класс, определенный перечислением?
- 28. удалить объект из массива Java
- 29. Linked-List удалить после метода java
- 30. Как удалить элемент из интерфейса List в java?
UR_object_List.remove (объект) –