国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

            手機(jī)站
            千鋒教育

            千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

            千鋒教育

            掃一掃進(jìn)入千鋒手機(jī)站

            領(lǐng)取全套視頻
            千鋒教育

            關(guān)注千鋒學(xué)習(xí)站小程序
            隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

            當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > Collection與Collections有什么區(qū)別?

            Collection與Collections有什么區(qū)別?

            來(lái)源:千鋒教育
            發(fā)布人:zyh
            時(shí)間: 2023-06-12 15:51:00 1686556260

              全文大約【3300】字,不說(shuō)廢話,只講可以讓你學(xué)到技術(shù)、明白原理的純干貨!本文帶有豐富的案例及配圖視頻,讓你更好地理解和運(yùn)用文中的技術(shù)概念,并可以給你帶來(lái)具有足夠啟迪的思考......

            Collection與Collections有什么區(qū)別

              一. 知識(shí)回顧

              1.Java集合體系

              根據(jù)小編前面給大家講解的內(nèi)容可知,Java的集合整體上可以分為 Collection 和 Map 兩大體系,而從這兩大體系中又可以延伸細(xì)分為 3個(gè)子類型:

              ● List-列表

              ● Set-集

              ● Map-映射

              從整體上來(lái)看,這幾種集合之間的關(guān)系如下圖所示:

            1685943035252.image

              2.集合的關(guān)系圖譜

              另外集合的各個(gè)接口和類之間除了有共同之處,它們也有一些各自的特點(diǎn),我們可以看看下面這個(gè)集合的關(guān)系圖譜:

            1685943026309.image

              在上圖中,有3個(gè)核心API需要我們掌握:

              ● Iterator: 我們可以通過(guò)迭代器遍歷集合中的數(shù)據(jù);

              ● Collection: Collection是List、Set、Queue 這3種集合的父級(jí)接口;

              ● Map: Map是映射表的父級(jí)接口。

              為了讓大家加深印象,接下來(lái)我們?cè)賳为?dú)復(fù)習(xí)一下Collection接口是怎么回事。

              二. Collection

              1.簡(jiǎn)介

              Collection是Java集合框架中的一個(gè)接口,它定義了一組用于存儲(chǔ)、訪問和操作對(duì)象的方法。它是Java集合框架中的基礎(chǔ)接口之一,我們常用的很多集合類都實(shí)現(xiàn)了Collection接口或其子接口(如List、Set、Queue等)。

            1685943065766.image

              2.核心方法

              Collection接口中定義了一系列用于操作集合的通用核心方法,包括添加、刪除、遍歷、查找等,Collection的各個(gè)子類都需要實(shí)現(xiàn)這些方法。下面是一些常用的Collection接口方法:

              ● add(E e):將元素e添加到集合中;

              ● remove(Object o):從集合中刪除對(duì)象o;

              ● contains(Object o):判斷集合中是否包含對(duì)象o;

              ● size():返回集合中元素的個(gè)數(shù);

              ● iterator():返回集合中元素的迭代器。

              通過(guò)這些方法,我們可以輕松地操作集合中的元素,實(shí)現(xiàn)各種常用的功能。

              三. Collections

              1.簡(jiǎn)介

              Collections是Java集合框架為了方便我們進(jìn)行集合開發(fā),為我們提供的一個(gè)操作Set、List和Map等集合的工具類,位于java.util包中。該類提供了一系列的靜態(tài)方法,可以實(shí)現(xiàn)對(duì)集合進(jìn)行排序、查找、替換、復(fù)制等操作。Collections類中的方法都是靜態(tài)方法,不需要?jiǎng)?chuàng)建其對(duì)象即可使用。

              利用Collections類,我們可以對(duì)集合進(jìn)行一些高級(jí)的操作,比如對(duì)集合進(jìn)行排序、查找最大值、查找最小值等??傊?,Collections類中提供的方法,可以幫助我們簡(jiǎn)化代碼,提高開發(fā)效率。

              2.常用方法

              Collections類中為我們提供的方法其實(shí)有很多,大致可以分為以下幾類:

              ● 創(chuàng)建空白集合:emptyList()、emptyMap()、emptySet():返回對(duì)應(yīng)的不可變的空集合,無(wú)法向其中添加或刪除元素;

              ● 創(chuàng)建單個(gè)元素的集合:singletonList(T o)、singletonMap(K key, V value)、singleton(T o):返回的是不可變的單元素集合,無(wú)法向其中添加或刪除元素;

              ● 排序方法:sort、reverse、shuffle、swap、rotate;

              ● 查找方法:binarySearch;

              ● 替換方法:replaceAll、fill;

              ● 復(fù)制方法:copy;

              ● 同步方法:synchronizedCollection、synchronizedList、synchronizedMap等;

              ● 不可修改方法:unmodifiableCollection、unmodifiableList、unmodifiableMap等;

              ● 其他方法:frequency、max、min、disjoint、frequency、indexOfSubList、lastIndexOfSubList等。

              接下來(lái)小編就通過(guò)幾個(gè)案例,來(lái)教大家學(xué)會(huì)這些方法該如何使用。

              3.基本使用

              3.1 排序方法

              Collections類給我們提供了好幾個(gè)排序方法,比如sort()、reverse()、shuffle()等,用于對(duì)集合進(jìn)行排序。

              3.1.1 sort方法 

            import java.util.ArrayList;
            import java.util.Collections;
            import java.util.List;

            /**
            * @author 一一哥Sun
            */
            public class Demo19 {

            public static void main(String[] args) {
            //Collections的使用--排序方法
            List<Integer> list = new ArrayList<>();
            list.add(3);
            list.add(1);
            list.add(2);
            //調(diào)用Collections的sort()排序方法---升序
            Collections.sort(list);
            System.out.println(list); // [1, 2, 3]
            }
            }

              3.1.2 reverse方法

              reverse(List list)方法用于對(duì)List集合進(jìn)行反轉(zhuǎn)排序,例如:  

            import java.util.ArrayList;
            import java.util.Collections;
            import java.util.List;

            /**
            * @author 一一哥Sun
            */
            public class Demo19 {

            public static void main(String[] args) {
            //Collections的使用--排序方法
            //調(diào)用Collections的reverse()排序方法--反轉(zhuǎn)排序
            List<Integer> list2 = new ArrayList<>();
            list2.add(1);
            list2.add(2);
            list2.add(3);
            Collections.reverse(list2);
            System.out.println(list2); // [3, 2, 1]
            }
            }

              3.1.3 shuffle方法

              shuffle(List list)方法用于對(duì)List集合進(jìn)行隨機(jī)排序,例如: 

            import java.util.ArrayList;
            import java.util.Collections;
            import java.util.List;

            /**
            * @author 一一哥Sun
            */
            public class Demo19 {

            public static void main(String[] args) {
            //Collections的使用--排序方法
            //調(diào)用Collections的shuffle()排序方法--隨機(jī)
            List<Integer> list3 = new ArrayList<>();
            list3.add(1);
            list3.add(2);
            list3.add(3);
            Collections.shuffle(list3);
            System.out.println(list3); // [2, 1, 3]
            }
            }

              3.2 查找方法

              Collections類也給我們提供了用于對(duì)集合進(jìn)行二分查找的binarySearch(List> list, T key)方法,該方法用于在有序集合中根據(jù)二分查找法,來(lái)查找到指定的元素,并返回元素在集合中的索引。如果指定元素不在集合中,則返回一個(gè)負(fù)數(shù),表示應(yīng)該插入該元素的位置。binarySearch()方法案例如下: 

            import java.util.ArrayList;
            import java.util.Collections;
            import java.util.List;

            /**
            * @author 一一哥Sun
            */
            public class Demo20 {

            public static void main(String[] args) {
            //Collections的使用--查找方法
            List<Integer> list = new ArrayList<>();
            list.add(1);
            list.add(2);
            list.add(3);
            //二分查找
            int index = Collections.binarySearch(list, 2);
            System.out.println(index); // 1
            }
            }

              3.3 替換方法

              Collections類給我們提供了一些用于替換的方法,比如replaceAll()、fill(),用于對(duì)集合進(jìn)行替換。

              3.3.1 replaceAll()方法

              replaceAll(List list, T oldVal, T newVal)方法用于將List集合中所有的舊元素替換為新元素,例如:  

            import java.util.ArrayList;
            import java.util.Collections;
            import java.util.List;

            /**
            * @author 一一哥Sun
            */
            public class Demo21 {

            public static void main(String[] args) {
            //Collections的使用--替換方法
            List<Integer> list = new ArrayList<>();
            list.add(1);
            list.add(2);
            list.add(3);
            //替換方法
            Collections.replaceAll(list, 2, 4);
            System.out.println(list); // [1, 4, 3]
            }
            }

              3.3.2 fill()方法

              fill(List list, T obj)方法用于用指定元素填充List集合,例如: 

            import java.util.ArrayList;
            import java.util.Collections;
            import java.util.List;

            /**
            * @author 一一哥Sun
            */
            public class Demo21 {

            public static void main(String[] args) {
            //Collections的使用--替換方法
            List<Integer> list = new ArrayList<>();
            list.add(1);
            list.add(2);
            list.add(3);
            //指定元素填充List集合
            Collections.fill(list, 0);
            System.out.println(list); // [0, 0, 0]
            }
            }

              3.4 同步方法

              Collections類提供了一些同步方法,如synchronizedCollection()、synchronizedList()、synchronizedMap()等,用于對(duì)集合進(jìn)行同步處理,這可以保證多線程環(huán)境下的并發(fā)安全。

              3.4.1 synchronizedCollection方法

              synchronizedCollection(Collection c)方法用于將指定集合轉(zhuǎn)換為線程安全的集合,例如:  

            import java.util.ArrayList;
            import java.util.Collection;
            import java.util.Collections;
            import java.util.List;

            /**
            * @author 一一哥Sun
            */
            public class Demo22 {

            public static void main(String[] args) {
            //Collections的使用--同步方法
            List<Integer> list = new ArrayList<>();
            list.add(1);
            list.add(2);
            list.add(3);
            //將指定集合轉(zhuǎn)換為線程安全的集合
            Collection<Integer> synchronizedList = Collections.synchronizedCollection(list);
            System.out.println("list="+synchronizedList);
            }
            }

              3.4.2 synchronizedList方法

              synchronizedList(List list)方法用于將指定的List集合轉(zhuǎn)換為線程安全的List集合,例如:  

            import java.util.ArrayList;
            import java.util.Collection;
            import java.util.Collections;
            import java.util.List;

            /**
            * @author 一一哥Sun
            */
            public class Demo22 {
            public static void main(String[] args) {
            //Collections的使用--同步方法
            List<Integer> list = new ArrayList<>();
            list.add(1);
            list.add(2);
            list.add(3);
            //將指定的List集合轉(zhuǎn)換為線程安全的List集合
            List<Integer> synchronizedList = Collections.synchronizedList(list);
            System.out.println("list2="+synchronizedList);
            }
            }

              3.4.3 synchronizedSet方法

              synchronizedSet(Set s)方法用于將指定的Set集合轉(zhuǎn)換為線程安全的Set集合,例如: 

            import java.util.ArrayList;
            import java.util.Collection;
            import java.util.Collections;
            import java.util.List;

            /**
            * @author 一一哥Sun
            */
            public class Demo22 {
            public static void main(String[] args) {
            //Collections的使用--同步方法
            Set<Integer> set = new HashSet<>();
            set.add(1);
            set.add(2);
            set.add(3);
            //將指定的Set集合轉(zhuǎn)換為線程安全的Set集合
            Set<Integer> synchronizedSet = Collections.synchronizedSet(set);
            System.out.println("set="+synchronizedSet);
            }
            }

              3.4.4 synchronizedMap方法

              synchronizedMap(Map m)方法用于將指定的Map集合轉(zhuǎn)換為線程安全的Map集合,例如:  

            import java.util.ArrayList;
            import java.util.Collection;
            import java.util.Collections;
            import java.util.List;

            /**
            * @author 一一哥Sun
            */
            public class Demo22 {
            public static void main(String[] args) {
            //Collections的使用--同步方法
            Map<String, Integer> map = new HashMap<>();
            map.put("a", 1);
            map.put("b", 2);
            map.put("c", 3);
            //將指定的Map集合轉(zhuǎn)換為線程安全的Map集合
            Map<String, Integer> synchronizedMap = Collections.synchronizedMap(map);
            System.out.println("map="+synchronizedMap);
            }
            }

              3.5 其他方法

              我們可以使用max()和min()方法分別輸出集合中的最大和最小值,用frequency()方法統(tǒng)計(jì)某個(gè)數(shù)據(jù)在集合中出現(xiàn)的次數(shù)。 

            import java.util.ArrayList;
            import java.util.Collection;
            import java.util.Collections;
            import java.util.List;

            /**
            * @author 一一哥Sun
            */
            public class Demo23 {
            public static void main(String[] args) {
            List<Integer> list = new ArrayList<>();
            list.add(100);
            list.add(-2);
            list.add(88);
            list.add(88);
            //查找集合中的最大值
            System.out.println("max="+Collections.max(list));
            //查找集合中的最小值
            System.out.println("min="+Collections.min(list));
            //判斷88在List集合中出現(xiàn)的次數(shù),返回2
            System.out.println(Collections.frequency(list, 88));
            }
            }

              我們也可以使用Collections的copy()靜態(tài)方法,將指定集合中的所有元素復(fù)制到另一個(gè)集合中。執(zhí)行copy()方法后,目標(biāo)集合中每個(gè)已復(fù)制元素的索引,將等同于源集合中該元素的索引。 

            import java.util.ArrayList;
            import java.util.Collection;
            import java.util.Collections;
            import java.util.List;

            /**
            * @author 一一哥Sun
            */
            public class Demo23 {
            public static void main(String[] args) {
            List<Integer> srcList = new ArrayList<>();
            srcList.add(10);
            srcList.add(88);
            srcList.add(100);

            List<Integer> destList = new ArrayList<>();
            destList.add(-1);
            destList.add(0);
            destList.add(1);

            //調(diào)用copy()方法,將srcList集合中的元素復(fù)制到destList集合中
            // java.lang.IndexOutOfBoundsException: Source does not fit in dest
            //destList表示目標(biāo)集合對(duì)象,srcList表示源集合對(duì)象。
            Collections.copy(destList, srcList);
            System.out.println(destList);
            }
            }

              我們要注意:目標(biāo)集合的長(zhǎng)度至少要和源集合的長(zhǎng)度相同。如果目標(biāo)集合的長(zhǎng)度更長(zhǎng),則不影響目標(biāo)集合中的其余元素。如果目標(biāo)集合的長(zhǎng)度不夠而無(wú)法包含整個(gè)源集合元素,程序會(huì)拋出 IndexOutOfBoundsException異常。

              除了以上這些方法,還有其他的一些方法,比如將一個(gè)集合變成不可變的集合,用于對(duì)集合進(jìn)行保護(hù)等,小編就不再一一給大家展示其用法了。這些方法基本上就是見名知意,大家根據(jù)名稱調(diào)用就可以,非常的簡(jiǎn)單??傊【幭M蠹铱梢允炀氄莆誄ollections類的使用方法,這對(duì)于Java開發(fā)人員來(lái)說(shuō)是非常重要的。

              三. Collection與Collections的區(qū)別

              綜上所述,小編就可以把Collection與Collections的區(qū)別給大家總結(jié)出來(lái)了。Collection和Collections雖然名字很相似,但它們的作用和用法完全不同,其核心區(qū)別如下:

              ● Collection是Java集合框架中的一個(gè)接口,定義了一組用于存儲(chǔ)、訪問和操作對(duì)象的方法,它是所有集合類的基礎(chǔ)接口之一;

              ● Collections是Java集合框架中的一個(gè)工具類,提供了一系列的靜態(tài)方法,方便我摸對(duì)集合進(jìn)行排序、查找、替換等操作,它是一個(gè)類,而不是一個(gè)接口。

              簡(jiǎn)單來(lái)說(shuō),Collection是一個(gè)接口,是Java集合框架中的基礎(chǔ)接口之一;而Collections是一個(gè)工具類,提供了一系列靜態(tài)方法,用于對(duì)集合進(jìn)行高級(jí)操作。

              四. 結(jié)語(yǔ)

              至此,小編就把今天的內(nèi)容講解完畢了,我相信大家也已經(jīng)明白了Collection與Collections的區(qū)別了。那么今天的核心內(nèi)容,就是下面這些了:

              ● Collection是Java集合的基礎(chǔ)接口,List、Set等都繼承自該接口;

              ● Collections是操作集合的工具類,里面有若干個(gè)操作集合的方法;

              ● 你要熟練使用Collections里的幾個(gè)常用方法哦。

            tags: Collection
            聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
            10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
            請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
            免費(fèi)領(lǐng)取
            今日已有369人領(lǐng)取成功
            劉同學(xué) 138****2860 剛剛成功領(lǐng)取
            王同學(xué) 131****2015 剛剛成功領(lǐng)取
            張同學(xué) 133****4652 剛剛成功領(lǐng)取
            李同學(xué) 135****8607 剛剛成功領(lǐng)取
            楊同學(xué) 132****5667 剛剛成功領(lǐng)取
            岳同學(xué) 134****6652 剛剛成功領(lǐng)取
            梁同學(xué) 157****2950 剛剛成功領(lǐng)取
            劉同學(xué) 189****1015 剛剛成功領(lǐng)取
            張同學(xué) 155****4678 剛剛成功領(lǐng)取
            鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
            董同學(xué) 138****2867 剛剛成功領(lǐng)取
            周同學(xué) 136****3602 剛剛成功領(lǐng)取
            相關(guān)推薦HOT
            PUE是什么?

            一、PUE是什么PUE,即功耗比(Power Usage Effectiveness),是數(shù)據(jù)中心的能源效率指標(biāo)。它是數(shù)據(jù)中心總功耗與設(shè)備功耗的比值,用于評(píng)估數(shù)據(jù)中...詳情>>

            2023-10-15 07:13:07
            graph cut和graph cuts有什么區(qū)別?

            1.語(yǔ)境不同graph cut”通常在描述一個(gè)操作時(shí)使用,比如”perform a graph cut”,它指的是在圖中找到一個(gè)切割,將圖劃分為兩個(gè)...詳情>>

            2023-10-15 07:02:16
            什么是雙機(jī)熱備?

            一、雙機(jī)熱備的原理雙機(jī)熱備是指在系統(tǒng)中配置兩臺(tái)服務(wù)器(主服務(wù)器和備份服務(wù)器),兩者通過(guò)高速網(wǎng)絡(luò)連接進(jìn)行實(shí)時(shí)數(shù)據(jù)同步和狀態(tài)同步。主服務(wù)器...詳情>>

            2023-10-15 06:37:02
            偏最小二乘支持向量機(jī)和支持向量機(jī)回歸的區(qū)別是什么?

            1.模型構(gòu)建的理論基礎(chǔ)不同支持向量機(jī)回歸(SVR)基于統(tǒng)計(jì)學(xué)習(xí)理論,其主要思想是找到一個(gè)超平面,使得大部分?jǐn)?shù)據(jù)點(diǎn)都在這個(gè)超平面的一定范圍內(nèi),...詳情>>

            2023-10-15 06:30:45
            VAE、GAN和transformer有什么區(qū)別?

            1.模型結(jié)構(gòu)不同VAE(變分自編碼器)是一種生成模型,其基于概率圖模型和自編碼器,能夠?qū)W習(xí)數(shù)據(jù)的潛在分布。GAN(生成對(duì)抗網(wǎng)絡(luò))同樣是一種生成...詳情>>

            2023-10-15 06:10:12