最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中containsKey?、contains方法的使用及注意事項(xiàng)詳解

 更新時(shí)間:2025年06月27日 10:01:40   作者:技術(shù)分享~  
這篇文章主要介紹了Java中containsKey?、?contains方法的使用及注意事項(xiàng)的相關(guān)資料,兩者分別用于檢查鍵和元素存在性,所屬接口不同,性能差異顯著,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

在 Java 中,containsKey 和 contains 是兩個(gè)常用的方法,分別用于檢查集合中是否包含指定的鍵或元素。雖然它們的功能類似,但它們的應(yīng)用場景和實(shí)現(xiàn)方式有所不同。本文將詳細(xì)解析這兩個(gè)方法的含義、作用、使用注意事項(xiàng),并提供示例代碼。

1. containsKey 方法詳解

1.1 含義

containsKey 是 Map 接口中的方法,用于檢查 Map 中是否包含指定的鍵。

1.2 作用

  • 判斷 Map 中是否存在某個(gè)鍵。
  • 如果存在,返回 true;否則返回 false。

1.3 使用場景

  • 在操作 Map 時(shí),需要檢查某個(gè)鍵是否存在。
  • 避免重復(fù)插入相同的鍵。

1.4 方法簽名

boolean containsKey(Object key)

1.5 使用注意事項(xiàng)

  • 鍵的類型key 的類型必須與 Map 中鍵的類型一致,否則可能返回 false。
  • 空鍵:如果 Map 允許 null 鍵,可以檢查 null 是否存在。
  • 性能HashMap 和 TreeMap 的 containsKey 方法性能不同:
    • HashMap:平均時(shí)間復(fù)雜度為 O(1)。
    • TreeMap:時(shí)間復(fù)雜度為 O(log n)。

1.6 示例代碼

import java.util.HashMap;
import java.util.Map;

public class ContainsKeyExample {
    public static void main(String[] args) {
        // 創(chuàng)建一個(gè) HashMap
        Map<String, Integer> map = new HashMap<>();
        map.put("apple", 10);
        map.put("banana", 20);
        map.put("cherry", 30);

        // 檢查鍵是否存在
        System.out.println("Contains key 'apple': " + map.containsKey("apple")); // true
        System.out.println("Contains key 'grape': " + map.containsKey("grape")); // false

        // 檢查 null 鍵
        map.put(null, 40);
        System.out.println("Contains key 'null': " + map.containsKey(null)); // true
    }
}

2. contains 方法詳解

2.1 含義

contains 是 Collection 接口中的方法,用于檢查集合中是否包含指定的元素。

2.2 作用

  • 判斷集合中是否存在某個(gè)元素。
  • 如果存在,返回 true;否則返回 false。

2.3 使用場景

  • 在操作 ListSet 等集合時(shí),需要檢查某個(gè)元素是否存在。
  • 避免重復(fù)插入相同的元素。

2.4 方法簽名

boolean contains(Object o)

2.5 使用注意事項(xiàng)

  • 元素的類型o 的類型必須與集合中元素的類型一致,否則可能返回 false。
  • 空元素:如果集合允許 null 元素,可以檢查 null 是否存在。
  • 性能:不同集合的實(shí)現(xiàn)性能不同:
    • ArrayList:時(shí)間復(fù)雜度為 O(n)。
    • HashSet:平均時(shí)間復(fù)雜度為 O(1)。
    • TreeSet:時(shí)間復(fù)雜度為 O(log n)。
  • 對(duì)象的 equals 方法contains 方法依賴于對(duì)象的 equals 方法來判斷元素是否相等,因此需要確保對(duì)象的 equals 方法正確實(shí)現(xiàn)。

2.6 示例代碼

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class ContainsExample {
    public static void main(String[] args) {
        // 創(chuàng)建一個(gè) ArrayList
        List<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("cherry");

        // 檢查元素是否存在
        System.out.println("Contains 'apple': " + list.contains("apple")); // true
        System.out.println("Contains 'grape': " + list.contains("grape")); // false

        // 檢查 null 元素
        list.add(null);
        System.out.println("Contains 'null': " + list.contains(null)); // true

        // 創(chuàng)建一個(gè) HashSet
        Set<Integer> set = new HashSet<>();
        set.add(10);
        set.add(20);
        set.add(30);

        // 檢查元素是否存在
        System.out.println("Contains 20: " + set.contains(20)); // true
        System.out.println("Contains 40: " + set.contains(40)); // false
    }
}

3. containsKey 與 contains 的區(qū)別

特性containsKeycontains
所屬接口Map 接口Collection 接口
作用對(duì)象檢查 Map 中是否包含指定的鍵檢查集合中是否包含指定的元素
性能HashMap:O(1);TreeMap:O(log n)ArrayList:O(n);HashSet:O(1)
依賴方法依賴 hashCode 和 equals 方法依賴 equals 方法
使用場景操作 Map 時(shí)檢查鍵是否存在操作集合時(shí)檢查元素是否存在

4、總結(jié)

   containsKey 和 contains 是 Java 中常用的方法,分別用于檢查 Map 中的鍵和集合中的元素是否存在。理解它們的區(qū)別和使用場景,可以幫助我們編寫更高效、更健壯的代碼。在實(shí)際開發(fā)中,根據(jù)需求選擇合適的集合類型和方法,可以顯著提升程序的性能。

到此這篇關(guān)于Java中containsKey 、contains方法的使用及注意事項(xiàng)詳解的文章就介紹到這了,更多相關(guān)Java containsKey 、 contains方法 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IntelliJ IDEA maven 構(gòu)建簡單springmvc項(xiàng)目(圖文教程)

    IntelliJ IDEA maven 構(gòu)建簡單springmvc項(xiàng)目(圖文教程)

    在工作當(dāng)中,我們有時(shí)需要?jiǎng)?chuàng)建一個(gè)全新的工程,而基于spring-mvc web的工程較為常見,這篇文章主要介紹了IntelliJ IDEA maven 構(gòu)建簡單springmvc項(xiàng)目(圖文教程),感興趣的小伙伴們可以參考一下
    2018-05-05
  • 利用Java實(shí)現(xiàn)復(fù)制Excel工作表功能

    利用Java實(shí)現(xiàn)復(fù)制Excel工作表功能

    這篇文章主要給大家介紹了關(guān)于如何利用Java實(shí)現(xiàn)復(fù)制Excel工作表功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • MyEclipse2018中安裝Mybatis generator插件的實(shí)現(xiàn)步驟

    MyEclipse2018中安裝Mybatis generator插件的實(shí)現(xiàn)步驟

    這篇文章主要介紹了MyEclipse2018中安裝Mybatis generator插件的實(shí)現(xiàn)步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • WeakHashMap?和?HashMap?區(qū)別及使用場景

    WeakHashMap?和?HashMap?區(qū)別及使用場景

    這篇文章主要為大家介紹了WeakHashMap?和?HashMap?的區(qū)別是什么以及何時(shí)使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • springboot使用@data注解減少不必要代碼

    springboot使用@data注解減少不必要代碼

    這篇文章主要介紹了springboot使用@data注解減少不必要代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • spring?boot教程之IDEA環(huán)境下的熱加載與熱部署

    spring?boot教程之IDEA環(huán)境下的熱加載與熱部署

    這篇文章主要介紹了spring?boot系列教程中的IDEA環(huán)境下的熱加載與熱部署的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • Java內(nèi)存分布?xì)w納整理詳解

    Java內(nèi)存分布?xì)w納整理詳解

    這篇文章主要介紹了java程序運(yùn)行時(shí)內(nèi)存分布詳解,需要的朋友可以參考下
    2017-04-04
  • 自己寫的簡易版Java日志類分享

    自己寫的簡易版Java日志類分享

    這篇文章主要介紹了自己寫的簡易版Java日志類分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-06-06
  • Mybatis-Plus中分頁插件PaginationInterceptor的使用

    Mybatis-Plus中分頁插件PaginationInterceptor的使用

    我們在開發(fā)的過程中,經(jīng)常會(huì)遇到分頁操作,本文主要介紹了Mybatis-Plus中分頁插件PaginationInterceptor的使用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • jvm垃圾回收GC調(diào)優(yōu)基礎(chǔ)原理分析

    jvm垃圾回收GC調(diào)優(yōu)基礎(chǔ)原理分析

    談到調(diào)優(yōu),這一定是針對(duì)特定場景、特定目的的事情, 對(duì)于 GC 調(diào)優(yōu)來說,首先就需要清楚調(diào)優(yōu)的目標(biāo)是什么?從性能的角度看,通常關(guān)注三個(gè)方面,內(nèi)存占用(footprint)、延時(shí)(latency)和吞吐量(throughput)
    2022-01-01

最新評(píng)論

靖边县| 台中县| 玉溪市| 佛冈县| 凤庆县| 西华县| 凌源市| 香港| 阜平县| 奉化市| 庆云县| 鹤岗市| 绩溪县| 莱阳市| 那曲县| 郎溪县| 天峻县| 安福县| 金坛市| 来凤县| 永年县| 河曲县| 苍南县| 南漳县| 金阳县| 玛曲县| 柳河县| 正宁县| 德惠市| 定南县| 永平县| 富裕县| 正镶白旗| 岑溪市| 四会市| 得荣县| 大悟县| 舞钢市| 东安县| 淳安县| 阿尔山市|