麻豆黑色丝袜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
主站蜘蛛池模板: 亚洲国产精品va在线观看麻豆 | 一嫁三夫电影免费观看| аⅴ中文在线天堂| 打开腿给医生检查黄文| 啊轻点灬大ji巴黑人太粗| 91久久精品国产91久久性色也| 韩国黄色片在线观看| 香港三级韩国三级人妇三| 午夜久| 欧美日韩三级在线观看| 黄色a级片电影| 渣男渣女抹胸渣男渣女软件| 欧美激情第一区| 97精品伊人久久大香线蕉| 日本videoshd高清黑人| 爱情岛永久入口线路首页| 玉蒲团电影| 风间由美juy135在线观看| 欧美日韩电影网| loveme枫と铃樱花动漫| 亚洲电影中文字幕| 国产精品综合色区在线观看| 精品国产国产综合精品| 老子影院午夜伦手机电影| 全彩无翼口工漫画大全3d| 日本公与熄乱理在线播放370| 夜夜爽免费888视频| 岛国片免费在线观看| 全彩里番acg海贼王同人本子| 亚洲国产成人久久综合区| 国产97人人超碰caoprom| a级精品国产片在线观看| 伊人快播| 收集最新中文国产中文字幕| 啊轻点灬大巴太粗太长了视频| 男男高h粗暴黄车文| 亚洲人成7777影视在线观看| 玉蒲团之天下第一| 国产精品特黄一级国产大片| 午夜爽爽爽视频| 国产99精品在线观看|