麻豆黑色丝袜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
主站蜘蛛池模板: 波多野结衣无限| 先锋影音av资源网| 久久综合一本| 旧里番6080在线观看| 在线免费观看你懂的| 又湿又紧又大又爽a视频| 精品国产精品久久一区免费式| 女bbbbxxxx另类亚洲| 日本手机看片| 九一在线完整视频免费观看| 十三以下岁女子毛片免费播放| 无人视频免费观看免费视频| 免费人成在线观看视频播放 | 再深点灬好舒服灬太大了添| 精品福利一区二区三区免费视频| 永久黄网站色视频免费观看| 伊人丁香狠狠色综合久久| www.米奇777.com| 欧美亚洲人成网站在线观看刚交| 一个人看的www免费高清中文字幕| 天天摸天天做天天爽天天弄| 樱花草在线社区www| 国产亚洲精品美女久久久久| 午夜视频在线观看国产| 1111| avtt在线观看| 日本无卡无吗在线| 日本加勒比在线精品视频| 精品国产免费一区二区三区| 蜜桃成熟之蜜桃仙子| 处破女18分钟完整版| 久久国产精品久久久久久| 恸哭の女教师大桥未久| 久久国产乱子伦免费精品| 羞羞答答xxdd影院欧美| 高清在线一区二区| 欧美一区二区三区久久综合| 4408私人影院| 高h网站| 亚欧洲精品在线视频免费观看| 黄色一级电影免费|