Bên cạnh mảngdictionary thì set (tập hợp) là một dạng dữ liệu cũng khá hay đó bạn ạ. Set trong Swift cũng là một dạng dữ liệu có khả năng lưu trữ nhiều phần tử giống mảngdictionary. Tuy nhiên set lại có cách thức hoạt động hơi khác so với mảngdictionary, vì vậy bài viết này mình sẽ tập trung hướng dẫn bạn phương pháp tạo và quản lý Set trong Swift.


Set là gì?


Một Set (tập hợp) giống mảngdictionary là đều có khả năng lưu trữ và gom nhóm nhiều đối tượng con bên trong. Nhưng Set lại khác mảng ở chỗ không quan tâm đến thứ tự sắp xếp của các phần tử con. Đồng thời, các phần tử trong Set không được trùng nhau.
Set trong Swift
➤ Lưu ý: Nên sử dụng Set thay thế mảng nếu bạn không quan tâm thứ tự các phần tử bên trong. Qua kiểm thử cho thấy Set thực thi nhanh hơn mảng.


Cú pháp tạo Set


Có 02 phương pháp tạo Set phổ biến như sau:

Phương pháp 1: tạo Set rỗng.

Thực hiện theo cú pháp sau để tạo một Set mới (không có bất kỳ phần tử nào bên trong):
Set trong SwiftVí dụ: khai báo một Set rỗng dùng để lưu trữ các phần tử con có kiểu String như sau.
Set trong SwiftChỉ với một dòng như vậy thôi là bạn đã tạo được một Set có tên models. Set này có thể lưu trữ nhiều phần tử bên trong nó, nhưng mỗi một phần tử phải thoả điều kiện là kiểu String và không trùng nhau bạn nhé.

Phương pháp 2: tạo Set bằng cách gán các phần tử trực tiếp.

Với phương pháp này, bạn có thể vừa tạo Set vừa gán các phần tử con vào Set ngay tại thời điểm khởi tạo. Cú pháp như sau:
Set trong SwiftNhìn cú pháp trên, bạn có cảm thấy tương tự như mảng không? Hoàn toàn giống nhau phải không nào, nếu bạn hiểu được bài mảng thì mình tin rằng bạn sẽ rất nhanh để hiểu cú pháp này.

Ví dụ: bây giờ thì bạn hãy làm thử ví dụ sau nhé:
Set trong SwiftTrong ví dụ trên, mình đã tạo một Set có tên models. Đồng thời mình cũng gán luôn các phần tử có kiểu String vào trong Set models tương tự việc thao tác với mảng. Ngoài ra, bạn cũng có thể viết một cách ngắn gọn hơn như sau:
Set trong Swift


Thao tác với Set


Trước khi đi vào một số thao tác với Set, bạn hãy xem qua một vài thuộc tính sau đây:
Set trong Swift
Ở trên là một số phương thức và thuộc tính cơ bản mà bạn sẽ hay sử dụng. Ngoài ra, bạn hãy nhớ giúp mình một số ý sau đây:

  • Các phần tử trong Set là duy nhất. Vì vậy Set sẽ tự động loại bỏ những phần tử trùng nhau khi được thêm vào.
  • Tương tự dictionary, giá trị mỗi phần tử trong Set cũng được thể hiện dưới dạng Optional.
  • Tương tự mảng, chúng ta cũng sẽ sử dụng vòng lặp để duyệt tất cả các phần tử trong Set. Ví dụ:
    Set trong Swift

Sắp xếp các phần tử trong Set

Việc sắp xếp các phần tử trong Set cũng tương tự như sắp xếp các phần tử trong mảng. Vì vậy bạn cũng sử dụng phương thức sorted() để sắp xếp các phần tử tăng dần.
Ví dụ:
Sắp xếp Set trong SwiftTrong trường hợp bạn muốn sắp xếp giảm hoặc muốn sắp xếp theo một tiêu chí nào đó, thì cũng có thể sử dụng closure để định nghĩa lại việc sắp xếp theo tiêu chí mà bạn mong muốn. Ví dụ như sau:
Sắp xếp Set trong SwiftTrong 02 ví dụ trên, bạn có thể dễ dàng thấy được rằng cách thức thực hiện hoàn toàn giống mảng. Do đó phần này mình tin rằng sẽ không có gì khó để làm khó được bạn, phải không nào.

Kết hợp Set

Như mình đã giới thiệu, Set trong Swift là một kiểu tập hợp do đó nó cũng được xây dựng một số phép kết hợp như sau:

  • intersection(_:) tạo tập hợp mới chứa tất cả các phần tử vừa thuộc a, vừa thuộc b.
    Kết hợp Set trong Swift
  • symmetricDifference(_:) tạo tập hợp mới chứa các phần tử của riêng a và của riêng b.
    Kết hợp Set trong Swift
  • union(_:) tạo tập hợp mới chứa tất cả các phần tử của cả a và b.
    Kết hợp Set trong Swift
  • subtracting(_:) tạo tập hợp mới chứa tất cả các phần tử thuộc a mà không thuộc b.
    Kết hợp Set trong Swift

Để hiểu rõ hơn về những phép kết hợp trên, bạn hãy thử làm ví dụ sau đây nhé.

Ví dụ: Cho 03 tập hợp như sau:
Kết hợp Set trong SwiftTừ 03 tập hợp trên, bạn hãy áp dụng các phép kết hợp Set như sau để hiểu rõ hơn về phép kết hợp nhé.
Kết hợp Set trong SwiftRất đơn giản phải không bạn. Với mỗi một phép kết hợp, bạn hãy làm thử và so sánh kết quả nhé. Mình tin rằng nếu bạn chịu khó vừa đọc vừa làm thử thì sẽ rất nhanh để làm chủ những kiến thức này.


Tổng kết


Trong phần này mình đã trình bày cho bạn cách thức sử dụng Set trong Swift. Đây cũng là bài viết cuối trong chuỗi bài viết về lập trình Swift cơ bản. Những bài viết sau mình sẽ hướng dẫn bạn những kiến thức nâng cao hơn về ngôn ngữ Swift. Vì vậy bạn hãy tổng hợp lại tất cả kiến thức trước khi sang phần mới nhé. Nếu trong phần này có chỗ nào khó hiểu thì bạn hãy cứ comment bên dưới, mình sẽ cố gắng hỗ trợ trong khả năng có thể.

0 0 votes
Đánh giá bài viết
0 Góp ý
Inline Feedbacks
View all comments