Swift程序 在Set中搜索元素含代碼

在Set中搜索元素的Swift程序

在Swift中,集合是一種無序的、獨特的、不可重復(fù)的存儲對象的容器。愛掏網(wǎng) - it200.com當我們需要搜索集合中是否存在某個元素時,可以利用Set的contains()方法進行查找。愛掏網(wǎng) - it200.com

Set的contains()方法用于判斷集合中是否包含某個元素。愛掏網(wǎng) - it200.com其聲明如下:

func contains(_ member: Element) -> Bool

其中,member代表集合中存在的元素,Element是泛型參數(shù)。愛掏網(wǎng) - it200.com該方法返回一個布爾值,true代表集合中包含該元素,false代表集合中不包含該元素。愛掏網(wǎng) - it200.com

下面是一段Swift代碼示例,演示如何利用contains()方法在Set中查找元素:

var mySet: Set<String> = ["apple", "banana", "orange"]

if mySet.contains("banana") {
    print("Set中包含該元素")
} else {
    print("Set中不包含該元素")
}

運行結(jié)果:

Set中包含該元素

Set中包含自定義對象的搜索

當集合中存儲的元素為自定義對象時,需要重寫該對象的hashValue和操作符,以確保集合中不會有重復(fù)的元素。愛掏網(wǎng) - it200.com下面是一個自定義對象Point的例子:

class Point: Hashable {
    var x: Int
    var y: Int

    init(x: Int, y: Int) {
        self.x = x
        self.y = y
    }

    // 重寫hashValue
    func hash(into hasher: inout Hasher) {
        hasher.combine(x)
        hasher.combine(y)
    }

    // 重寫==
    static func ==(lhs: Point, rhs: Point) -> Bool {
        return lhs.x == rhs.x && lhs.y == rhs.y
    }
}

var pointSet: Set<Point> = [Point(x: 1, y: 2), Point(x: 2, y: 3), Point(x: 4, y: 5)]

if pointSet.contains(Point(x: 2, y: 3)) {
    print("Set中包含該元素")
} else {
    print("Set中不包含該元素")
}

運行結(jié)果:

Set中包含該元素

實戰(zhàn):判斷密碼是否合法

我們可以利用Set的contains()方法來判斷用戶輸入的密碼是否合法。愛掏網(wǎng) - it200.com假設(shè)密碼需要符合以下規(guī)則:

  • 長度大于等于8位
  • 至少包含一個小寫字母
  • 至少包含一個大寫字母
  • 至少包含一個數(shù)字

下面是一個Swift代碼示例:

func isPasswordValid(_ password: String) -> Bool {
    if password.count < 8 {
        return false
    }

    if !password.contains(where: { 0.isUppercase }) {
        return false
    }

    if !password.contains(where: {0.isLowercase }) {
        return false
    }

    if !password.contains(where: { $0.isNumber }) {
        return false
    }

    return true
}

let password = "Abc12345"
let invalidPassword = "abc123"

let validChars = Set("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890")

if isPasswordValid(password) && Set(password).isSubset(of: validChars) {
    print("密碼合法")
} else {
    print("密碼不合法")
}

if isPasswordValid(invalidPassword) && Set(invalidPassword).isSubset(of: validChars) {
    print("密碼合法")
} else {
    print("密碼不合法")
}

運行結(jié)果:

密碼合法
密碼不合法

結(jié)論

本文介紹了Swift中Set的contains()方法,以及如何利用該方法在Set中搜索元素。愛掏網(wǎng) - it200.com對于包含自定義對象的Set,需要重寫該對象的hashValue和操作符;對于實際應(yīng)用中的密碼合法性驗證,可以使用Set的isSubset(of:)方法來判斷輸入的密碼包含的字符是否合法。愛掏網(wǎng) - it200.com

聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進行處理。
發(fā)表評論
更多 網(wǎng)友評論0 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 夜夜精品无码一区二区三区| 狠狠色综合网久久久久久| 日韩精品专区在线影院重磅| 国产精品小青蛙在线观看| 亚洲精品网站在线观看你懂的| 三上悠亚在线网站| 美腿丝袜亚洲综合| 护士的小嫩嫩好紧好爽在线播放| 国产三级在线免费观看| 国产欧美一区二区精品久久久| 亚洲国产美女在线观看| 2021国产精品露脸在线| 欧美成人伊人十综合色| 国产精品沙发午睡系列999| 亚洲国产成人精品无码区在线观看 | 国产a国产片色老头| 中文字幕人妻三级中文无码视频 | 精品久久久久久无码中文字幕漫画| 性美国xxxxx免费| 免费的涩涩视频在线播放| jizzjlzzjlzz性欧美| 热狗福利ap青草视频入口在线观看p引导下载花季传媒 | 视频免费1区二区三区| 日日摸日日碰夜夜爽亚洲| 啊轻点灬大ji巴太粗太长了h| 一级黄色香蕉视频| 电台女诗岚第1到4部分| 国产麻豆入在线观看| 亚洲一级毛片免观看| 韩国太太的告白韩国电影| 无人在线观看视频高清视频8 | 西西人体午夜视频| 成成人看片在线| 伊人久久大香线蕉亚洲| 91手机看片国产永久免费| 欧美jizzhd极品欧美欧美xxxx18动漫 | 久久久久久久久久久久久久久| 色婷婷激婷婷深爱五月小蛇| 引诱亲女乱小说完整版18| 亚洲精品中文字幕乱码| 欧美成人手机在线视频|