Câu hỏi phỏng vấn Java
Câu hỏi

Sự khác biệt giữa HashSet v...

Câu trả lời

HashSetTreeSet là hai cấu trúc dữ liệu phổ biến trong Java Collections Framework, cả hai đều triển khai từ interface Set, nhưng chúng có những đặc điểm và sử dụng khác nhau.

1. Cơ chế lưu trữ

  • HashSet: Dựa trên bảng băm (hash table), không duy trì thứ tự của các phần tử. Các thao tác như thêm (add), xóa (remove), và kiểm tra tồn tại (contains) có độ phức tạp thời gian là O(1) trong trường hợp trung bình
  • TreeSet: Sử dụng cấu trúc dữ liệu cây (tree), nơi các phần tử được tự động sắp xếp theo thứ tự tăng dần hoặc theo Comparator được cung cấp. Các thao tác thêm, xóa, và kiểm tra tồn tại có độ phức tạp là O(log n)

2. Thứ tự phần tử

  • HashSet: Không duy trì bất kỳ thứ tự nào của các phần tử
  • TreeSet: Duy trì các phần tử theo thứ tự tăng dần hoặc theo một Comparator cụ thể

3. Hiệu suất

  • HashSet: Cung cấp hiệu suất nhanh hơn trong việc thêm, xóa, và tìm kiếm các phần tử do độ ph...
senior

senior

Gợi ý câu hỏi phỏng vấn

middle

Sự khác biệt giữa InterfaceAbstract class trong Java là gì?

middle

Trong Java, khi nào thì hàm finalize() được gọi?

middle

Giải thích các trạng thái của thread ở một high-level?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào