国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
1、什麼是集合框架?
2、Collection介面
1.透過(guò)泛型來(lái)指定對(duì)應(yīng)集合中的物件類(lèi)型
2.Collection常見(jiàn)方法使用
#傳回一個(gè)裝有所有集合中元素的陣列
4、具體的實(shí)現(xiàn)類(lèi)
首頁(yè) Java java教程 Java集合框架的資料結(jié)構(gòu)是什麼

Java集合框架的資料結(jié)構(gòu)是什麼

May 28, 2023 pm 03:58 PM
java

    1、什麼是集合框架?

    在java中,有一套現(xiàn)成的資料結(jié)構(gòu),例如順序表,鍊表,隊(duì)列,棧,優(yōu)先權(quán)隊(duì)列,哈希表等,被封裝成了相應(yīng)的接口/類(lèi),供程式設(shè)計(jì)師直接使用,只需要建立相關(guān)的物件即可以使用,而不需要再實(shí)現(xiàn)其內(nèi)部結(jié)構(gòu)。

    集合是一種儲(chǔ)存和管理多個(gè)元素的資料結(jié)構(gòu),其中這些元素被置於單一單元中,可透過(guò)增加、刪除、修改和查詢等操作進(jìn)行處理。舉例來(lái)說(shuō),像是撲克牌(一組牌的集合)、一個(gè)通訊錄(一組姓名和電話的映射關(guān)係)等都可以作為例子。

    下圖很重要! ! !需要牢記其常用的介面和類(lèi)別! !

    Java集合框架的資料結(jié)構(gòu)是什麼

    Java集合框架的資料結(jié)構(gòu)是什麼

    因?yàn)閙ap介面沒(méi)有實(shí)作Iterable接口,那麼要遍歷其中的元素該怎麼實(shí)作呢?

    		Map<Integer,String> map = new HashMap();
            map.put(1,"jack");
            map.put(2,"tom");
            Set<Map.Entry<Integer, String>> entries = map.entrySet();
            // 使用迭代器進(jìn)行遍歷 ,增強(qiáng) for同理
            Iterator<Map.Entry<Integer, String>> iterator = entries.iterator();
            while (iterator.hasNext()) {
                Map.Entry<Integer, String> entry =  iterator.next();
                System.out.println(entry.getKey() + " " + entry.getValue());
            }

    上述以HashMap為例,可以呼叫其entrySet() 方法,將map裡面的每個(gè)鍵值對(duì)都封裝成一個(gè)Map.Entry對(duì)象,因?yàn)橛肧et介面接收,所以就可以使用迭代器或是for-each()進(jìn)行遍歷了,而且每個(gè)entry物件都有g(shù)etKey() 和getValue() 方法,分別取得key值和value值。

    基本關(guān)係(簡(jiǎn)易版)

    Java集合框架的資料結(jié)構(gòu)是什麼

    2、Collection介面

    一般是用實(shí)作了Collection介面的介面或是類(lèi)別來(lái)接受具體實(shí)現(xiàn)類(lèi)別的對(duì)象,因?yàn)樯蠄D可以看出,Collection接口是一系列接口和類(lèi)別的父接口,其內(nèi)部實(shí)現(xiàn)的方法比較少,所以不能調(diào)用一些子類(lèi)有的常見(jiàn)方法。

    1.透過(guò)泛型來(lái)指定對(duì)應(yīng)集合中的物件類(lèi)型

    注意:這裡傳入的型別只能是引用型別,如果是基本資料型別,應(yīng)該用其包裝類(lèi)別來(lái)指定

    		Collection<String> collection1 = new ArrayList();
            collection1.add("haha");
            collection1.add("world");
            Collection<Integer> collection2 = new ArrayList();
            collection2.add(1);
            collection2.add(2);
            //collection2.add("hh");// 這里會(huì)報(bào)錯(cuò),不符合傳入的指定類(lèi)型Integer

    2.Collection常見(jiàn)方法使用

    void clear()boolean isEmpty()boolean remove(Object e) boolean add(E e)
    #方法
    刪除集合中的所有元素
    判斷集合是否沒(méi)有任何元素,俗稱空集合
    #如果元素e 出現(xiàn)在集合中,刪除其中一個(gè)
    將元素e 放入集合中

    Java集合框架的資料結(jié)構(gòu)是什麼#int size()

    傳回集合中的元素?cái)?shù)量

    Object[] toArray()

    #傳回一個(gè)裝有所有集合中元素的陣列

    因?yàn)檫@裡不能保證數(shù)組中的每個(gè)元素都轉(zhuǎn)成了String,而只是將其整體強(qiáng)轉(zhuǎn)為了String[] 類(lèi)型的數(shù)組,所以如果非要轉(zhuǎn),需要先遍歷回傳的結(jié)果,將其一個(gè)一個(gè)轉(zhuǎn)為String類(lèi)型,最後賦給一個(gè)String[] 類(lèi)型的陣列。 java裡不建議整體對(duì)數(shù)組類(lèi)型進(jìn)行轉(zhuǎn)換。
    		Object[] objects = collection1.toArray();
            String[] strings = new String[objects.length];
            for (int i = 0; i < objects.length; i++) {
                strings[i] = (String)objects[i];// 一個(gè)一個(gè)轉(zhuǎn),但是沒(méi)啥必要
            }
    3、Map 介面透過(guò)< k, v >鍵值對(duì)的形式來(lái)儲(chǔ)存數(shù)據(jù),此處的key 值唯一,且每個(gè)key 值都可以對(duì)應(yīng)其相應(yīng)的value 值。不同的 key 值可以對(duì)應(yīng)相同的 value 。 HashMap: 在存放元素時(shí),根據(jù)其key值,呼叫內(nèi)部的hashCode函數(shù),找到元素該放入的位置,所以哈希表中元素不是按照存入的順序存放的。 Map常見(jiàn)方法使用#作用 #V get(Object k)根據(jù)指定k查找對(duì)應(yīng)vV getOrDefault(Object k, V defaultValue)根據(jù)指定的k尋找對(duì)應(yīng)的v,沒(méi)有找到則傳回預(yù)設(shè)值V put(K key, V 值)將指定的k-v 放入Map
    注意:在在最後一個(gè)Object[] toArray() 方法中,返回的是Object[] 類(lèi)型的數(shù)組,底層的做法是:將集合中的元素一個(gè)一個(gè)拿出來(lái),將其轉(zhuǎn)為Object 對(duì)象,存入要返回的數(shù)組中,最終傳回一個(gè)Object[] 類(lèi)型的陣列。轉(zhuǎn)換為 String[] 陣列時(shí)會(huì)引發(fā)型別轉(zhuǎn)換異常。
    方法
    ### #######boolean containsKey(Object key)#######判斷是否包含key############boolean containsValue(Object value)#######判斷是否包含value############Set> entrySet()######將所有鍵值對(duì)回傳########### ##boolean isEmpty()######判斷是否為空#############int size()######傳回鍵值對(duì)的數(shù)量####### ######
    		HashMap<Integer, String> map = new HashMap<>();
    
            // put()
            map.put(1,"張飛");// 這里的 key 值唯一
            map.put(1,"宋江");// 如果二次插入的 key 值之前有,則替換其 value值
            map.put(2,"Jack");
            System.out.println(map);
    
            // get()
            String s1 = map.get(1);// 返回 宋江
            String s3 = map.getOrDefault(3,"三團(tuán)");// 未找到,返回 三團(tuán)
    
            // entrySet()
            // 該方法返回一個(gè) Set<Map.Entry<Integer, String>> 對(duì)象
            Set<Map.Entry<Integer, String>> entries = map.entrySet();
            for (Map.Entry<Integer, String> entry : entries) {
                // 通過(guò) entry.getKey() 和 entry.getValue() 獲取每個(gè)entry對(duì)應(yīng)的 k, v值
                System.out.println(entry.getKey() + " " + entry.getValue());
            }

    Java集合框架的資料結(jié)構(gòu)是什麼

    4、具體的實(shí)現(xiàn)類(lèi)

    Java集合框架的資料結(jié)構(gòu)是什麼

    以上是Java集合框架的資料結(jié)構(gòu)是什麼的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

    本網(wǎng)站聲明
    本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

    熱AI工具

    Undress AI Tool

    Undress AI Tool

    免費(fèi)脫衣圖片

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費(fèi)的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級(jí)程式碼編輯軟體(SublimeText3)

    熱門(mén)話題

    Laravel 教程
    1597
    29
    PHP教程
    1488
    72
    VSCODE設(shè)置。 JSON位置 VSCODE設(shè)置。 JSON位置 Aug 01, 2025 am 06:12 AM

    settings.json文件位於用戶級(jí)或工作區(qū)級(jí)路徑,用於自定義VSCode設(shè)置。 1.用戶級(jí)路徑:Windows為C:\Users\\AppData\Roaming\Code\User\settings.json,macOS為/Users//Library/ApplicationSupport/Code/User/settings.json,Linux為/home//.config/Code/User/settings.json;2.工作區(qū)級(jí)路徑:項(xiàng)目根目錄下的.vscode/settings

    如何使用JDBC處理Java的交易? 如何使用JDBC處理Java的交易? Aug 02, 2025 pm 12:29 PM

    要正確處理JDBC事務(wù),必須先關(guān)閉自動(dòng)提交模式,再執(zhí)行多個(gè)操作,最後根據(jù)結(jié)果提交或回滾;1.調(diào)用conn.setAutoCommit(false)以開(kāi)始事務(wù);2.執(zhí)行多個(gè)SQL操作,如INSERT和UPDATE;3.若所有操作成功則調(diào)用conn.commit(),若發(fā)生異常則調(diào)用conn.rollback()確保數(shù)據(jù)一致性;同時(shí)應(yīng)使用try-with-resources管理資源,妥善處理異常並關(guān)閉連接,避免連接洩漏;此外建議使用連接池、設(shè)置保存點(diǎn)實(shí)現(xiàn)部分回滾,並保持事務(wù)盡可能短以提升性能。

    在Java的掌握依賴注入春季和Guice 在Java的掌握依賴注入春季和Guice Aug 01, 2025 am 05:53 AM

    依賴性(di)IsadesignpatternwhereObjectsReceivedenciesenciesExtern上,推廣looseSecouplingAndEaseerTestingThroughConstructor,setter,orfieldInjection.2.springfraMefringframeWorkSannotationsLikeLikeLike@component@component,@component,@service,@autowiredwithjava-service和@autowiredwithjava-ligatiredwithjava-lase-lightike

    了解Java虛擬機(jī)(JVM)內(nèi)部 了解Java虛擬機(jī)(JVM)內(nèi)部 Aug 01, 2025 am 06:31 AM

    TheJVMenablesJava’s"writeonce,runanywhere"capabilitybyexecutingbytecodethroughfourmaincomponents:1.TheClassLoaderSubsystemloads,links,andinitializes.classfilesusingbootstrap,extension,andapplicationclassloaders,ensuringsecureandlazyclassloa

    如何使用Java的日曆? 如何使用Java的日曆? Aug 02, 2025 am 02:38 AM

    使用java.time包中的類(lèi)替代舊的Date和Calendar類(lèi);2.通過(guò)LocalDate、LocalDateTime和LocalTime獲取當(dāng)前日期時(shí)間;3.使用of()方法創(chuàng)建特定日期時(shí)間;4.利用plus/minus方法不可變地增減時(shí)間;5.使用ZonedDateTime和ZoneId處理時(shí)區(qū);6.通過(guò)DateTimeFormatter格式化和解析日期字符串;7.必要時(shí)通過(guò)Instant與舊日期類(lèi)型兼容;現(xiàn)代Java中日期處理應(yīng)優(yōu)先使用java.timeAPI,它提供了清晰、不可變且線

    Google Chrome無(wú)法打開(kāi)本地文件 Google Chrome無(wú)法打開(kāi)本地文件 Aug 01, 2025 am 05:24 AM

    ChromecanopenlocalfileslikeHTMLandPDFsbyusing"Openfile"ordraggingthemintothebrowser;ensuretheaddressstartswithfile:///;2.SecurityrestrictionsblockAJAX,localStorage,andcross-folderaccessonfile://;usealocalserverlikepython-mhttp.server8000tor

    了解網(wǎng)絡(luò)端口和防火牆 了解網(wǎng)絡(luò)端口和防火牆 Aug 01, 2025 am 06:40 AM

    NetworkPortSandFireWallsworkTogetHertoEnableCommunication whereSeringSecurity.1.NetWorkPortSareVirtualendPointSnumbered0-655 35,with-Well-with-Newonportslike80(HTTP),443(https),22(SSH)和25(smtp)sindiessingspefificservices.2.portsoperateervertcp(可靠,c

    比較Java框架:Spring Boot vs Quarkus vs Micronaut 比較Java框架:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

    前形式攝取,quarkusandmicronautleaddueTocile timeProcessingandGraalvSupport,withquarkusoftenpernperforminglightbetterine nosserless notelless centarios.2。

    See all articles