麻豆黑色丝袜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
主站蜘蛛池模板: 美女免费视频一区二区三区| 高清在线一区二区| 亚洲成a人一区二区三区| 成年女人在线视频| 二代妖精免费看| 日本视频免费高清一本18| 国产精品高清一区二区三区不卡| 在线看无码的免费网站| 高清毛片免费看| 亚洲成a人片在线观| 最近更新2019中文字幕8| 亚洲一区在线观看视频| 97久久久亚洲综合久久88| 久久久久国产精品| 成人性生交大片免费看| 国产性生交xxxxx免费| 国产男男| 娇妻当着我的面被4p经历| 欧美日韩在线视频不卡一区二区三区 | 国产精品一级二级三级| 精品国内自产拍在线视频| а√天堂地址在线| 狠狠夜色午夜久久综合热91| 99久久精品国产一区二区三区 | 午夜不卡av免费| 国产gay小鲜肉| 午夜欧美激情| 国产精品一卡二卡三卡| 亲密爱人完整版在线观看韩剧| 日本边添边摸边做边爱的视频| 80yy私人午夜a级国产| 欧美xxxx做受欧美| 高清对白精彩国产国语| 日本三级午夜理伦三级三| 秋霞影院国产| heyzo小向美奈子在线| 2021国产麻豆剧果冻传媒电影| 伊在人亚洲香蕉精品区 | 久久精品国产99久久99久久久| 啊灬啊灬啊灬快灬深用力| 打开腿我想亲亲你下面视频|