麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > set.contains詳解

set.contains詳解

來源:千鋒教育
發布人:xqq
時間: 2023-11-23 11:48:50 1700711330

一、set.contains介紹

set.contains()函數是Java中Set接口中的一個方法,該方法判斷Set中是否包含某個元素,若包含則返回true,否則返回false。

其用法為:

Set set = new HashSet<>();
set.add(element);
boolean result = set.contains(element);

其中,element為Set中的元素,result為boolean類型的變量,用于記錄Set中是否包含該元素。

二、set.contains的時間復雜度

set.contains的時間復雜度與使用的Set實現有關。對于基于哈希表的實現,如HashSet和LinkedHashSet,其平均時間復雜度為O(1);對于基于紅黑樹的實現,如TreeSet,其平均時間復雜度為O(log n)。

在實際應用中,選用適當的Set實現能夠達到更好的性能。

三、set.contains與equals的關系

set.contains的判斷依賴于元素的hashCode以及equals函數的返回值。如果兩個元素的hashCode相同,但equals函數返回值不同,則判斷這兩個元素相等的結果是錯誤的。

為了避免此類問題,程序員需要確保重寫了元素類的equals函數,保證元素相等的判斷符合自己的需求。

例如,對于一個Person類:

class Person {
    private String name;
    private int age;
    //... 
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Person)) return false;
        Person person = (Person) o;
        return age == person.age &&
                Objects.equals(name, person.name);
    }
    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}

在使用Set時,如果只重寫了hashCode函數而沒有重寫equals函數,則set.contains()很可能會判斷出兩個元素不相等,即使它們在業務上應該是相等的。

四、set.contains的使用場景

set.contains的常見使用場景包括:

判斷集合中是否包含指定元素 對于刪除、修改等操作,先使用set.contains判斷操作元素是否存在 對于數據量比較大的List,可以先將List中的元素加入set中,再使用set.contains實現快速查找

五、set.contains的應用舉例

以下代碼展示了如何使用set.contains實現兩個字符串的交集:

public Set intersection(String s1, String s2) {
    Set set1 = new HashSet<>();
    Set set2 = new HashSet<>();
    for (char c : s1.toCharArray()) {
        set1.add(c);
    }
    for (char c : s2.toCharArray()) {
        set2.add(c);
    }
    Set result = new HashSet<>();
    for (char c : set1) {
        if (set2.contains(c)) {
            result.add(c);
        }
    }
    return result;
}

其中,set1和set2分別表示兩個字符串中各個字符集合,用set.contains計算它們的交集,最終返回一個Set類型的結果。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 精品国产三级在线观看| 女人扒开| 亚洲欧洲日韩在线电影| 无需付费大片在线免费| 一级日本强免费| 国产精品素人福利| 中文字幕1页| 黑人一个接一个上来糟蹋| 3d夜蒲团| 老婆bd电影| 污污视频大全| 美国一级毛片免费看| 欧美一线视频| 一个人免费视频观看在线www| acg里番全彩侵犯本子福利| 91视频中文| 久久成人国产精品一区二区| 日本动漫黑暗圣经| 日鲁鲁| 色老头综合免费视频| 性中国自由xxxxx孕妇| 富二代国app产下载| 欧美精品一区二区三区视频| 国产欧美精品一区二区三区四区| 久久久99精品免费观看| 精品伊人久久大线蕉色首页| 大学生一级片| 草草影院国产| 国产精品久久国产精品99| 天天想你电视剧| 午夜免费理论片a级| 国产成人综合欧美精品久久| 新梅瓶4在线观看dvd| 国产91在线|欧美| 久久亚洲精品无码| 三级久久| 久久精品欧美日韩精品| 夜夜躁狠去2021| 天天干成人网| 精品国产福利在线观看91啪| 久久国产加勒比精品无码|