Trong mã của tôi, tôi mặc định sử dụng ArrayList cho tất cả các Danh sách, HashMap cho tất cả các bản đồ, HashSet cho tất cả các bộ.Triển khai Bộ sưu tập Java (ví dụ: HashMaps vs HashSet vs HashTable ...), chi phí của việc chọn sai là gì?
Từ quan điểm thực tế, tôi mất đi tính linh hoạt, khả năng mở rộng, khả năng đọc và hiệu suất bằng cách chọn triển khai sai? Khi nào nó có ý nghĩa để dành thời gian để quyết định sử dụng cái này chứ không phải cái khác?
Tôi chắc chắn sẽ thấy một trường hợp cắt rất rõ ràng vì sao một người nào đó sẽ sử dụng LinkedList thay vì một ArrayList trong một số trường hợp nhất định. Khi nào một người nào đó cảm thấy rằng nó là rất quan trọng họ sử dụng một HashMap chứ không phải là một TreeMap hoặc một HashTable? Điều gì về Sets?
Câu hỏi:
- chi phí của việc lựa chọn kém là bao nhiêu?
- Có ai có câu chuyện về thảm họa về việc chọn triển khai sai và trung tâm dữ liệu bắt lửa không?
- Bất kỳ quy tắc ngón tay cái nào tốt?
- Có bất kỳ triển khai bộ sưu tập tối nghĩa nào mà bạn không thể sống mà không có không?
Tôi đã đọc qua:
- http://java.sun.com/j2se/1.4.2/docs/api/java/util/TreeMap.html
- http://java.sun.com/j2se/1.4.2/docs/api/java/util/HashMap.html
- Java: ArrayList for List, HashMap for Map, and HashSet for Set? vv ...
tôi thấy this câu hỏi có liên quan từ một quan điểm lý thuyết của xem, nhưng tôi quan tâm nhiều hơn đến một thế giới thực, trong phần renches trả lời.
Điều này thực sự giống như 4 câu hỏi trong một và thực sự nhiều hơn một cuộc thảo luận không phải là một câu hỏi – cletus
Có lẽ câu trả lời liên quan: http://bit.ly/1NSlx – OscarRyz
mà không cần rút ngắn url http://stackoverflow.com/questions/532521/ mà-data-structure-uses-more-memory/532569 # 532569 –