国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JAVA學(xué)習(xí)筆記】 56 - 開發(fā)中如何選擇集合實現(xiàn)類,以及Collection工具類

這篇具有很好參考價值的文章主要介紹了【JAVA學(xué)習(xí)筆記】 56 - 開發(fā)中如何選擇集合實現(xiàn)類,以及Collection工具類。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

項目代碼

https://github.com/yinhai1114/Java_Learning_Code/blob/main/IDEA_Chapter14/src/com/yinhai/Collections_.java

目錄

項目代碼

Collections工具類

一、Collections工具類介紹

1.排序操作: (均為static方法)

2.查找、替換


在開發(fā)中,選擇什么集合實現(xiàn)類,主要取決于業(yè)務(wù)操作特點,然后根據(jù)集合實現(xiàn)類特性進行
選擇,分析如下:

0.先判斷存儲的類型(一組對象[單列]或一組鍵值對[雙列])

1.一組對象: Collection接口(單列)

? ? ? ? 1)允許重復(fù): List

????????????????增刪多: LinkedList [底層維護了一一個雙向鏈表]

????????????????改查多: ArrayList [底層維護Object類型的可變數(shù)組]

? ? ? ? 2)不允許重復(fù): Set

? ? ? ? ? ? ? ?無序: HashSet [底層是HashMap,維護了一個哈希表即(數(shù)組+鏈表+紅黑樹)]

????????????????排序: TreeSet

? ? ? ? ? ? ? ? 插入和取出順序一致: LinkedHashSet , 維護數(shù)組+雙向鏈表

2.一組鍵值對: Map(雙列)

????????????????鍵無序: HashMap [底層是:哈希表jdk7: 數(shù)組+鏈表,jdk8: 數(shù)組+鏈表+紅黑樹]

????????????????鍵排序: TreeMap

????????????????鍵插入和取出順序一致: LinkedHashMap

????????????????讀取文件Properties?

Collections工具類

一、Collections工具類介紹

1.Collections是一個操作Set、List 和Map等集合的工具類

2.Collections中提供了一系列靜態(tài)的方法對集合元素進行排序、查詢和修改等操作

1.排序操作: (均為static方法)

????????1) reverse(List):反轉(zhuǎn)List中元素的順序

????????2) shuffle(List):對List集合元素進行隨機排序

????????3) sort(List):根據(jù)元素的自然順序?qū)χ付↙ist 集合元素按升序排序

????????4) sort(List, Comparator): 根據(jù)指定的Comparator產(chǎn)生的順序?qū)ist集合元素排序

????????5) swap(List, int, int): 將指定list集合中的i處元素和j處元素進行交換

2.查找、替換

1) Object max(Collection):根據(jù)元素的自然順序,返回給定集合中的最大元素

2) Object max(Collection, Comparator): 根據(jù)Comparator指定的順序,返回給定集合中的最大元素

3) Object min(Collection)

4) Object min(Collection, Comparator)

5) int frequency(Collection, Object): 返回指定集合中指定元素的出現(xiàn)次數(shù)

6) void copy(List dest,List src):將src中的內(nèi)容復(fù)制到dest中

7) boolean replaceAll(List list, Object oldVal, Object newVal):使用新值替換List 對象的所有舊值文章來源地址http://www.zghlxwxcb.cn/news/detail-737254.html

public class Collections_ {
    public static void main(String[] args) {

        //創(chuàng)建ArrayList 集合,用于測試.
        List list = new ArrayList();
        list.add("tom");
        list.add("smith");
        list.add("king");
        list.add("milan");
        list.add("tom");


        // reverse(List):反轉(zhuǎn) List 中元素的順序
        Collections.reverse(list);
        System.out.println("list=" + list);

        // shuffle(List):對 List 集合元素進行隨機排序

        for (int i = 0; i < 5; i++) {
            Collections.shuffle(list);
            System.out.println("list=" + list);
        }


        // sort(List):根據(jù)元素的自然順序?qū)χ付?List 集合元素按升序排序
        Collections.sort(list);
        System.out.println("自然排序后");
        System.out.println("list=" + list);

        //sort(List,Comparator):根據(jù)指定的 Comparator 產(chǎn)生的順序?qū)?List 集合元素進行排序
        //我們希望按照 字符串的長度大小排序
        Collections.sort(list, new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                //可以加入校驗代碼.
                return ((String) o2).length() - ((String) o1).length();
            }
        });
        System.out.println("字符串長度大小排序=" + list);

        // swap(List,int, int):將指定 list 集合中的 i 處元素和 j 處元素進行交換
        //比如
        Collections.swap(list, 0, 1);
        System.out.println("交換后的情況");
        System.out.println("list=" + list);

        //Object max(Collection):根據(jù)元素的自然順序,返回給定集合中的最大元素
        System.out.println("自然順序最大元素=" + Collections.max(list));
        //Object max(Collection,Comparator):根據(jù) Comparator 指定的順序,返回給定集合中的最大元素
        //比如,我們要返回長度最大的元素
        Object maxObject = Collections.max(list, new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                return ((String) o1).length() - ((String) o2).length();
            }
        });
        System.out.println("長度最大的元素=" + maxObject);


        //Object min(Collection)
        //Object min(Collection,Comparator)
        //上面的兩個方法,參考max即可

        //int frequency(Collection,Object):返回指定集合中指定元素的出現(xiàn)次數(shù)
        System.out.println("tom出現(xiàn)的次數(shù)=" + Collections.frequency(list, "tom"));

        //void copy(List dest,List src):將src中的內(nèi)容復(fù)制到dest中
        ArrayList dest = new ArrayList();
        //為了完成一個完整拷貝,我們需要先給dest 賦值,大小和list.size()一樣
        for (int i = 0; i < list.size(); i++) {
            dest.add("");
        }
        //拷貝
        Collections.copy(dest, list);
        System.out.println("dest=" + dest);

        //boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替換 List 對象的所有舊值
        //如果list中,有tom 就替換成 湯姆
        Collections.replaceAll(list, "tom", "湯姆");
        System.out.println("list替換后=" + list);


    }
}

到了這里,關(guān)于【JAVA學(xué)習(xí)筆記】 56 - 開發(fā)中如何選擇集合實現(xiàn)類,以及Collection工具類的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 物聯(lián)網(wǎng)開發(fā)筆記(56)- 使用Micropython開發(fā)ESP32開發(fā)板之手機藍牙控制舵機

    物聯(lián)網(wǎng)開發(fā)筆記(56)- 使用Micropython開發(fā)ESP32開發(fā)板之手機藍牙控制舵機

    一、目的 ??????? 這一節(jié)我們學(xué)習(xí)如何使用我們的ESP32開發(fā)板來實現(xiàn)通過藍牙控制接在ESP32開發(fā)板上的舵機。 二、環(huán)境 ??????? ESP32 + MG90S舵機 + Thonny IDE + 幾根杜邦線 + 手機 ????????舵機的鏈接方法見第54節(jié):物聯(lián)網(wǎng)開發(fā)筆記(54)- 使用Micropython開發(fā)ESP32開發(fā)板之控制

    2024年02月09日
    瀏覽(47)
  • 【Java集合篇】HashMap的get方法是如何實現(xiàn)的?

    【Java集合篇】HashMap的get方法是如何實現(xiàn)的?

    下面是JDK 1.8中HashMap的get方法的簡要實現(xiàn)過程: 1 . 首先,需要計算鍵的哈希值,并通過哈希值計算出在數(shù)組中的索引位置 2 . 如果該位置上的元素為空,說明沒有找到對應(yīng)的鍵值對,直接返回null。 3 . 如果該位置上的元素不為空,遍歷該位置上的元素,如果找到了與當(dāng)前鍵相

    2024年02月02日
    瀏覽(15)
  • Android 安卓開發(fā)語言kotlin與Java該如何選擇

    Android 安卓開發(fā)語言kotlin與Java該如何選擇

    ????????如今在Android開發(fā)中,應(yīng)用層開發(fā)語言主要是Java和Kotlin,Kotlin是后來加入的,主導(dǎo)的語言還是Java。kotlin的加入仿佛讓會kotlin語言的開發(fā)者更屌一些,其實不然。 ????????有人說kotlin的引入是解決開發(fā)者復(fù)雜的邏輯,并且對空指針控制的比較友好,但是我們在開

    2024年02月11日
    瀏覽(93)
  • Java選擇題集合(三)(更新中)

    說明:這里是懷化學(xué)院java考試平臺題庫里的題,為了方便將題整理出來,但題庫還在不斷更新中,故此集合整理的題最新截止至發(fā)布時間,我將正確答案用紅色粗體標(biāo)注,但這里大概有226道選擇題,我將題集分為四個部分,這里是第三部分(121-180),由于題量較大,整理時

    2024年02月06日
    瀏覽(17)
  • java中接口多個實現(xiàn)類,如何指定實現(xiàn)類,根據(jù)子類類型選擇實現(xiàn)方法

    在Java代碼中,經(jīng)常會遇到一個接口有多個實現(xiàn)的情況。而這些實現(xiàn)類的參數(shù)又是不同的子類,這時候我們該如何選擇正確的實現(xiàn)方法呢? 我們可以通過判斷參數(shù)的子類類型來選擇正確的實現(xiàn)方法。具體實現(xiàn)可以使用Java中的instanceof,它可以判斷一個對象是否是某個類的

    2024年02月12日
    瀏覽(21)
  • 56基于java的房屋租賃系統(tǒng)設(shè)計與實現(xiàn)

    本章節(jié)給大家?guī)硪粋€基于java房屋租賃系統(tǒng)設(shè)計與實現(xiàn),可適用于java租房網(wǎng)站java房子租用,房屋租用,租房網(wǎng)站,租房管理系統(tǒng),房屋預(yù)約系統(tǒng),預(yù)約看房,房屋資訊,在線房屋信息管理系統(tǒng)等。 經(jīng)過調(diào)查,目前現(xiàn)代人的生活節(jié)奏加快,生活壓力也在逐漸的增加,網(wǎng)絡(luò)的發(fā)

    2024年02月10日
    瀏覽(15)
  • Java筆記(15) Collection集合-->List集合

    Java筆記(15) Collection集合-->List集合

    集合的理解和好處 數(shù)組一旦定義,長度即固定,不能修改。要添加新元素需要新建數(shù)組,然后循環(huán)拷貝,非常麻煩 集合可以動態(tài)保存任意多個對象,使用比較方便 提供餓了一系列方便的操作對象的方法:add、remove、set、get等 使用集合添加、刪除新元素的示意代碼,簡潔明了

    2023年04月14日
    瀏覽(21)
  • java Collection集合使用筆記

    java Collection集合使用筆記

    它是單例集合的最頂層接口,它表示一組對象,這些對象也稱之為Collection的元素 JDK不提供此接口任何直接實現(xiàn),但提供更具體的子接口(如: List 和 Set )實現(xiàn) 創(chuàng)建Collection集合對象的方法: 多態(tài)的形式 具體的實現(xiàn)類: ArrayList Iterator迭代器,Collection集合的專用遍歷方式 I

    2024年02月11日
    瀏覽(26)
  • 「Java」《Java集合框架詳解:掌握常用集合類,提升開發(fā)效率》

    Java 集合框架是 Java 編程中不可或缺的一部分。它提供了一組強大的數(shù)據(jù)結(jié)構(gòu)和算法,用于存儲、操作和處理對象數(shù)據(jù)。本文將深入探討 Java 集合框架的核心概念,介紹常用的集合接口和實現(xiàn)類,并提供實際應(yīng)用示例,幫助讀者更好地理解和應(yīng)用集合框架,提升開發(fā)效率。

    2024年02月11日
    瀏覽(31)
  • 《Java Web輕量級整合開發(fā)入門》學(xué)習(xí)筆記

    《Java Web輕量級整合開發(fā)入門》學(xué)習(xí)筆記

    輕量級Java Web整合開發(fā) 第一章 輕量級Java Web開發(fā)概述 1.2? java web 開發(fā)概述 1.JSP是一種編譯執(zhí)行的前臺頁面技術(shù)。對于每個JSP頁面,Web服務(wù)器都會生成一個相應(yīng)的Java文件,然后再編譯該Java文件,生成相應(yīng)的Class類型文件。在客戶端訪問到的JSP頁面,就是相應(yīng)Class文件執(zhí)行的結(jié)果

    2024年02月08日
    瀏覽(92)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包