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

    在Set中搜索元素的Swift程序

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

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

    func contains(_ member: Element) -> Bool
    

    其中,member代表集合中存在的元素,Element是泛型參數(shù)。愛掏網(wǎng) - it200.com該方法返回一個(gè)布爾值,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中不包含該元素")
    }
    

    運(yùn)行結(jié)果:

    Set中包含該元素
    

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

    當(dāng)集合中存儲的元素為自定義對象時(shí),需要重寫該對象的hashValue和操作符,以確保集合中不會有重復(fù)的元素。愛掏網(wǎng) - it200.com下面是一個(gè)自定義對象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中不包含該元素")
    }
    

    運(yùn)行結(jié)果:

    Set中包含該元素
    

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

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

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

    下面是一個(gè)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("密碼不合法")
    }
    

    運(yùn)行結(jié)果:

    密碼合法
    密碼不合法
    

    結(jié)論

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

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

    返回頂部

    主站蜘蛛池模板: 国产视频一区二区在线观看| 亚洲一区二区三区四区在线观看| 亚洲综合一区二区三区四区五区| 国产成人无码一区二区三区在线| 日韩AV无码一区二区三区不卡毛片 | 国产精品538一区二区在线| 亚洲欧美日韩中文字幕一区二区三区 | 在线观看国产区亚洲一区成人| 亚洲无删减国产精品一区| 日韩视频一区二区在线观看| 中文字幕一区二区三区有限公司| 亚洲一区二区三区亚瑟| 亚洲熟女少妇一区二区| 日韩在线视频一区二区三区| 精品日韩亚洲AV无码一区二区三区| 精品一区二区三人妻视频| 国模精品一区二区三区| 精品一区二区三区无码免费直播| 无码精品人妻一区二区三区漫画 | 亚洲熟妇av一区| 亚洲国产成人一区二区精品区| 亚洲国产成人精品久久久国产成人一区二区三区综 | 久久久久人妻精品一区三寸蜜桃 | 亚洲一区二区影视| 一区二区三区日韩精品| 无码人妻精品一区二区三 | 无码少妇一区二区性色AV| 日韩人妻无码一区二区三区综合部 | 日韩精品无码一区二区三区四区| 色婷婷亚洲一区二区三区 | 免费看无码自慰一区二区| 欧洲精品码一区二区三区| 日韩一区二区三区免费体验| 九九无码人妻一区二区三区| 日本一区中文字幕日本一二三区视频| 亚洲Av高清一区二区三区| 日本精品高清一区二区2021| 四虎永久在线精品免费一区二区 | 国产一区二区三区无码免费| 一区二区三区视频网站| 一区二区视频在线播放|