2014-06-28 16 views
26

Có một sơ đồ đẹp (lấy từ here) cho việc lựa chọn một container đặc biệt trong C++:bộ sưu tập Scala Flowchart

container-flowchart

Có một cái gì đó tương tự cho các bộ sưu tập Scala? Tôi vẫn còn phần nào choáng ngợp với các tùy chọn.

Trả lời

59

Tôi không biết về các sơ đồ như vậy đối với Scala, nhưng tôi đoán nó sẽ hữu ích. Tôi đã tạo một cho bạn - ảnh lớn hơn here.

Lưu ý rằng có thêm một số phức tạp, vì Scala có nhiều bộ sưu tập hơn và có cả gói mutable và gói immutable. Nếu có thể, tôi đã thêm cả hai lựa chọn thay thế vào hình chữ nhật.

Tôi đã cố gắng làm theo sơ đồ lưu lượng C++ STL càng nhiều càng tốt, nhưng tôi nghĩ rằng phần dưới bên trái làm phức tạp nhiều thứ một chút, vì vậy tôi đã thay đổi dòng chảy ở đó một chút.

EDIT: sửa một số lỗi chính tả.

EDIT: Như Travis, gợi ý, lưu ý rằng trong đa số trường hợp, bạn chỉ cần chọn giữa một Map, Set, List, ArrayBuffer hoặc một Vector.

  • nếu bạn cần tra cứu giá trị khóa, sử dụng một Map
  • nếu bạn cần phải kiểm tra xem có sự hiện diện của các yếu tố, sử dụng một Set
  • nếu bạn cần lưu trữ các yếu tố và đi qua chúng, sử dụng một List hoặc một ArrayBuffer
  • nếu bạn không cần một bộ sưu tập dai dẳng, nhưng truy cập ngẫu nhiên là thực sự quan trọng, sử dụng ArrayBuffer
  • nếu bạn cần truy cập tương đối nhanh và ngẫu nhiên chuỗi dai dẳng, sử dụng Vector

Nếu điều đó không giúp ích và bạn có trường hợp sử dụng kỳ lạ hơn, hãy sử dụng biểu đồ này.

enter image description here

+1

Đó là một biểu đồ khá tốt đẹp. Bạn đã sử dụng cái gì để làm nó? – haneefmubarak

+0

Ứng dụng CorelDRAW. Nó khá đẹp để sử dụng cho đồ họa vector. – axel22

+2

Phần lớn thời gian trong Scala thành ngữ bạn sẽ sử dụng 'Map',' Set', 'List', và' Vector' (hoặc 'Seq' và' IndexedSeq' cho lần cuối cùng, theo một số người) . Đây là một biểu đồ tiện dụng, nhưng nó có thể làm cho tình hình có vẻ khó hiểu hơn thực tế. –

Các vấn đề liên quan