Tập hợp trong Swift

Một phần của tài liệu Giáo trình lập trình di động trên iOS Dành cho bậc Cao đẳng (Trang 31 - 33)

1.2 Ngôn ngữ lập trình Swift

1.2.10 Tập hợp trong Swift

Cũng giống một số ngơn ngữ lập trình khác, tập hợp (Set) trong Swift được dùng để lưu trữ các giá trị khác nhau của cùng một kiểu dữ liệu, nhưng khác với mảng, các phần tử của tập hợp thì khơng có thứ tự (Mảng thì mỗi phần tử ln có thứ tự index nhất định). Do vậy, sử dụng tập hợp thay cho mảng trong những trường hợp mà thứ tự các phần tử trong đó khơng quan trọng và các giá trị của chúng khác biệt nhau (khơng muốn có

những giá trị bị trùng lặp trong đó).

Khai báo tập hợp (Set)

var setName = Set<Kieu>() // Khai báo một tập hợp rỗng kiểu Kieu hoặc

var setName: Set = [value1, value2, …] // Khai báo và khởi gán giá trị cho tập hợp hoặc var setName: Set<Kieu> = [value1, value2, …] // Khai báo và khởi gán với kiểu Kieu.

Một số phép xử lý thường thực hiện trên cấu trúc kiểu tập hợp

Ví dụ với khai báo sau ta có thể thực hiện:

var setInt = Set<Int>()

STT Phép tốn Mơ tả

1 setInt.isEmpty Kiểm tra tập hợp có rỗng khơng (Trường hợp này kết

quả là true)

2 setInt.insert(10) Đưa một phần tử vào trong tập hợp (Với tập hợp số

nguyên setInt ở trên thì phần tử 10 được thêm vào). Kết quả phép thêm vào sẽ trả về bộ (inserted,

24

memberAfterInsert), trong đó inserted. Nếu phép thêm vào thành cơng thì inserted sẽ là true, ngược lại sẽ nhận giá trị false, còn memberAfterInsert sẽ chứa

các phần tử của tập hợp sau phép thêm. 3 setInt.count Trả về số các phần tử trong tập hợp

4 setInt.remove(10) Xố phần tử có giá trị 10 trong tập hợp setInt. Nếu tập hợp có chứa giá trị đó, phần tử sẽ bị xố và phép xố trả về chính phần tử đó. Ngược lại khơng phần tử nào bị xố và nó trả về nil.

5 setInt.contains(10) Kiểm tra sự tồn tại của phần tử trong tập hợp, nếu có trả về true, ngược lại trả về false.

6 for item in setInt

{…} Duyệt tập hợp sử dụng for-in. Lưu ý, trong cách duyệt này thì các phần tử được duyệt sẽ không theo một thứ tự nhất định nào.

7 for item in

setInt.sorted() {…} Duyệt tập hợp theo thứ tự được sắp xếp. 8 .union

.intersection .subtracting

Phép union sẽ trả về một tập hợp mới là kết quả của phép hợp giữa hai tập hợp. Phép intersection sẽ trả về một tập hợp mới là kết quả của phép giao giữa hai tập hợp. Còn phép subtracting sẽ trả về một tập hợp mới là kết quả của phép loại trừ các phần tử của tập hợp số 2 ra khỏi tập hợp số 1.

Một số ví dụ về tập hợp

Ví dụ 1: Thực hiện các phép union, intersection và subtracting

import UIKit

let setOdds: Set = [1,3,5,7,9] // Tập hợp số lẻ => { 3, 5, 7, 1, 9 } let setEvens: Set = [2,4,6,8] // Tập hợp số chẵn => { 6, 4, 2, 8} let primes: Set = [2,3,5,7] // Tập hợp số nguyên tố => { 2, 7, 3, 5 }

setOdds.union(setEvens) // { 7, 8, 9, 6, 2, 3, 1, 4, 5} setOdds.intersection(setEvens) // => {} Rỗng setOdds.intersection(primes) // => { 3, 7, 5} setOdds.subtracting(primes) // => { 9, 1}

setOdds.union(setEvens).subtracting(primes) // => { 4, 6, 9, 8, 1}

Ví dụ 2: Phát sinh n số ngẫu nhiên khác nhau cho một ứng dụng iOS.

import UIKit

// Tạo tập hợp rỗng kiểu Int

var setRandom = Set<Int>()

// Thực hiện vòng lặp đến khi đủ 100 số ngẫu nhiên

while setRandom.count < 100 {

// Phát sinh số ngẫu nhiên trong khoảng [1,1000] let numRandom = Int.random(in: 1...1000)

// Đảm bảo số ngẫu nhiên sẽ không bị lặp lại if setRandom.insert(numRandom).inserted { // Sử dụng số ngẫu nhiên vừa tạo

print("So ngau nhien hop le tiep theo \(numRandom)") }

Một phần của tài liệu Giáo trình lập trình di động trên iOS Dành cho bậc Cao đẳng (Trang 31 - 33)

Tải bản đầy đủ (PDF)

(137 trang)