麻豆黑色丝袜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
主站蜘蛛池模板: 国产精品成人久久久久久久| 日韩三级理论| 中文无码久久精品| 日本三人交xxx69视频| 国产精品国产三级在线专区| 推拿电影完整未删减版资源| 国产剧情麻豆剧果冻传媒视频免费| 永久黄网站色视频免费观看| 热久久国产精品| 尹人香蕉网在线观看视频| 国产99精品在线观看| 亚洲高清二区| 一个人看的www视频免费在线观看| 美女的让男人桶爽网站| 岛国大片免费在线观看| 亚洲国产高清在线精品一区| 女人被男人躁到呻吟的| 国产自在线观看| 婷婷亚洲久悠悠色悠在线播放| 大陆年轻帅小伙飞机gay| 好男人在线神马影视www在线观看| 《波多野结衣系列mkmp-305》| 一本大道高清香蕉中文大在线| 天堂中文字幕在线观看| 国产馆手机在线观看| 中文字幕1页| 精品国产不卡一区二区三区| 人人超人人97超人人女| 男人天堂网在线观看| 男女无遮挡边做边吃视频免费| 91国语精品自产拍在线观看一| 精品一区二区久久久久久久网站 | 伊人色综合久久天天网| 欧美妈妈的朋友| 免费一级做a爰片久久毛片潮喷| 99视频在线| 日本一道高清一区二区三区| 欧美黑人换爱交换乱理伦片| 男人边吃奶边做性视频| 野花社区视频www| 黄色大片播放|