亚洲 国产精品 日韩-亚洲 激情-亚洲 欧美 91-亚洲 欧美 成人日韩-青青青草视频在线观看-青青青草影院

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > Collection與Collections有什么區別?

Collection與Collections有什么區別?

來源:千鋒教育
發布人:zyh
時間: 2023-06-12 15:51:00 1686556260

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

Collection與Collections有什么區別

  一. 知識回顧

  1.Java集合體系

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

  ● List-列表

  ● Set-集

  ● Map-映射

  從整體上來看,這幾種集合之間的關系如下圖所示:

1685943035252.image

  2.集合的關系圖譜

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

1685943026309.image

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

  ● Iterator: 我們可以通過迭代器遍歷集合中的數據;

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

  ● Map: Map是映射表的父級接口。

  為了讓大家加深印象,接下來我們再單獨復習一下Collection接口是怎么回事。

  二. Collection

  1.簡介

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

1685943065766.image

  2.核心方法

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

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

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

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

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

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

  通過這些方法,我們可以輕松地操作集合中的元素,實現各種常用的功能。

  三. Collections

  1.簡介

  Collections是Java集合框架為了方便我們進行集合開發,為我們提供的一個操作Set、List和Map等集合的工具類,位于java.util包中。該類提供了一系列的靜態方法,可以實現對集合進行排序、查找、替換、復制等操作。Collections類中的方法都是靜態方法,不需要創建其對象即可使用。

  利用Collections類,我們可以對集合進行一些高級的操作,比如對集合進行排序、查找最大值、查找最小值等。總之,Collections類中提供的方法,可以幫助我們簡化代碼,提高開發效率。

  2.常用方法

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

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

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

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

  ● 查找方法:binarySearch;

  ● 替換方法:replaceAll、fill;

  ● 復制方法:copy;

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

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

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

  接下來小編就通過幾個案例,來教大家學會這些方法該如何使用。

  3.基本使用

  3.1 排序方法

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

  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);
//調用Collections的sort()排序方法---升序
Collections.sort(list);
System.out.println(list); // [1, 2, 3]
}
}

  3.1.2 reverse方法

  reverse(List list)方法用于對List集合進行反轉排序,例如:  

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

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

public static void main(String[] args) {
//Collections的使用--排序方法
//調用Collections的reverse()排序方法--反轉排序
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)方法用于對List集合進行隨機排序,例如: 

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

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

public static void main(String[] args) {
//Collections的使用--排序方法
//調用Collections的shuffle()排序方法--隨機
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類也給我們提供了用于對集合進行二分查找的binarySearch(List> list, T key)方法,該方法用于在有序集合中根據二分查找法,來查找到指定的元素,并返回元素在集合中的索引。如果指定元素不在集合中,則返回一個負數,表示應該插入該元素的位置。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(),用于對集合進行替換。

  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()等,用于對集合進行同步處理,這可以保證多線程環境下的并發安全。

  3.4.1 synchronizedCollection方法

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

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);
//將指定集合轉換為線程安全的集合
Collection<Integer> synchronizedList = Collections.synchronizedCollection(list);
System.out.println("list="+synchronizedList);
}
}

  3.4.2 synchronizedList方法

  synchronizedList(List list)方法用于將指定的List集合轉換為線程安全的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集合轉換為線程安全的List集合
List<Integer> synchronizedList = Collections.synchronizedList(list);
System.out.println("list2="+synchronizedList);
}
}

  3.4.3 synchronizedSet方法

  synchronizedSet(Set s)方法用于將指定的Set集合轉換為線程安全的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集合轉換為線程安全的Set集合
Set<Integer> synchronizedSet = Collections.synchronizedSet(set);
System.out.println("set="+synchronizedSet);
}
}

  3.4.4 synchronizedMap方法

  synchronizedMap(Map m)方法用于將指定的Map集合轉換為線程安全的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集合轉換為線程安全的Map集合
Map<String, Integer> synchronizedMap = Collections.synchronizedMap(map);
System.out.println("map="+synchronizedMap);
}
}

  3.5 其他方法

  我們可以使用max()和min()方法分別輸出集合中的最大和最小值,用frequency()方法統計某個數據在集合中出現的次數。 

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集合中出現的次數,返回2
System.out.println(Collections.frequency(list, 88));
}
}

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

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);

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

  我們要注意:目標集合的長度至少要和源集合的長度相同。如果目標集合的長度更長,則不影響目標集合中的其余元素。如果目標集合的長度不夠而無法包含整個源集合元素,程序會拋出 IndexOutOfBoundsException異常。

  除了以上這些方法,還有其他的一些方法,比如將一個集合變成不可變的集合,用于對集合進行保護等,小編就不再一一給大家展示其用法了。這些方法基本上就是見名知意,大家根據名稱調用就可以,非常的簡單。總之,小編希望大家可以熟練掌握Collections類的使用方法,這對于Java開發人員來說是非常重要的。

  三. Collection與Collections的區別

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

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

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

  簡單來說,Collection是一個接口,是Java集合框架中的基礎接口之一;而Collections是一個工具類,提供了一系列靜態方法,用于對集合進行高級操作。

  四. 結語

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

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

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

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

tags: Collection
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
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
久久天天躁夜夜躁狠狠躁2022| 免费A级毛片中文字幕| H无码精品动漫在线观看| 超清纯白嫩大学生无码网站| 国精产品999国精产品官网| 18禁又污又黄又爽的网站| 超碰97人人做人人爱少妇 | 日韩亚洲欧美精品综合| 乱码专区一卡二卡国色天香| 欧美性猛交aaaa乱大交| 他一边曰一边吃我奶小说免看| 亚洲AV永久无码精品国产精品| 在C点用力把桌腿A抬离地面时游 | 麻豆国产在线精品国偷产拍| 日本XXXX18裸体XXXX| 日韩一区二区三区精品| 美女露胸 0无挡挡| 日韩AⅤ无码大片无码片| 性生交片免费无码看人| 又粗又大又黄又爽的免费视频| 成人AV天堂一二三在线观看| 国内精品久久久久久99| 女の乳搾りです在线观看| 无码成A毛片免费| 在线精品一区二区三区| 国产97在线 | 传媒有限公司| 久久国产精品成人影院| 日本少妇情视频WWW| 亚洲精品自偷自拍无码| 波多野42部无码喷潮在线| 河南妇女毛浓浓BW| 亲近相奷对白中文字幕片| 亚洲AV无码一区二区三区人区| BGMBGMBGM老妇60岁| 国产一区二区H无遮挡| 欧美成本人网站免费观看| 香蕉大美女天天爱天天做| 91人妻人人澡人爽人精品| 国产农村妇女毛片精品久久| 欧美506070老妇乱子伦| 亚洲AV无码日韩AV无码导航 | 精品无码AV无码免费专区| 欧美最猛黑人XXXXX猛交| 亚洲AV永久无码成人私密按摩| A级毛片毛片免费观看丝瓜| 国内精品久久影院综合日日| 人妻激情偷乱视频一区二区三区 | 性生生活色欲片性按摩| AV 无码 在线 观看| 狠狠色噜噜狠狠狠7777奇米| 日本护士HD人XXXX| 一二三四视频社区在线播放中国| 国产成人一区二区三区影院| 年级老师的滋味4| 亚洲第一狼人天堂网亚洲AV| 大家闺秀VS糙汉将军古言| 两性午夜刺激性视频2345| 午夜福利国产成人无码GIF动图| AⅤ精品一区二区三区| 娇妻系列交换27部多P小 | 成人无码免费视频在线观看网址| 久久久噜噜噜WWW成人网| 无码专区HEYZO色欲AV| А√天堂中文在线资源BT在线| 九月在线 视频 在线观看| 天堂VA在线高清一区| AV天堂午夜精品一区| 久久国产精品成人影院| 无码少妇xxxx| 草草久久久无码国产专区| 麻豆蜜桃AV蜜臀AV色欲AV| 亚洲成AV人片在线观看无线| 国产69精品久久久久成人小说 | 97人澡人人添人人爽欧美| 精品无人区一区二区三区的特点 | 色偷偷AV男人的天堂| 99RE66热这里只有精品3| 久久精品国产一区二区三区肥胖| 午夜A级成人免费毛片| 成人A级毛片无码免费| 女生自己动手奖励自己的好处| 亚洲码国产精品高潮在线| 国产乱码日产精品BD| 色8激情欧美成人久久综合电| 99精品又大又爽又粗少妇毛片| 久久久久精品国产亚洲AV蜜桃 | 麻花豆传媒剧国产MV网站入口| 亚洲AV永久无码天堂网| 国产精品99久久久久久人| 日欧 片内射AV在线影院| YW尤物AV无码点击进入福利| 免费专区SM美脚践踏调教视频| 亚洲伊人成无码综合网| 欢迎来到精灵の森林1到四集| 无码专区人妻系列日韩精品| 东京无码熟妇人妻AV在线网址 | 亚洲一本大道无码AV天堂| 国语自产少妇精品视频蜜桃| 无遮挡H肉动漫在线播放| 公交车后车座疯狂的做的细节| 人人妻人人澡人人爽人人蜜臀 | 国产情侣疯狂作爱系列| 同性男男黄网站在线观看国外| 俄罗斯18XXOO在线| 日韩AV无码社区一区二区三区| ているの天堂资源WWW| 欧美日韩国产精品| 99久久国语露脸精品国产| 免费无码观看的AV在线播放 | 国产成人久久777777| 色噜噜狠狠色综合AV妖精| 成午夜福利人试看120秒| 日本熟妇色丰满少妇wwwww色| 宝宝握住坐下~它会自己动| 啪啪男女爱高潮GIF| JAPAN高清日本乱XXXXX| 漂亮人妻中文字幕丝袜| SUNTEK中老年人女妈妈秋装| 欧美一级 片内射黑人| BGMBGMBGM日本XX| 人妻丰满熟妇AV无码片| 被两个黑人玩得站不起来了| 日本又黄又爽又无遮挡的视频 | 暴躁老姐的CSGO心得分享| 日本高清视频色WWWWWW色| 成人亚洲欧美在线观看| 少妇厨房愉情理伦BD在线观看 | 少妇伦子伦情品无吗| 国产成人无码AⅤ片在线观看你 | 激情内射人妻1区2区3区| 亚洲欧美高清一区二区三区| 久久精品亚洲男人的天堂| 一女被两男吃奶玩乳尖 | 特级西西WWW.444人体聚色| 国产成人亚洲影院在线| 性饥渴的少妇AV无码影片| 黑人狂虐中国人妻陈艳| 亚洲色欲久久久久综合网| 老太奶性BBWBBWBBW| 99精品人妻少妇一区二区| 人妻丰满熟妇AV无码处处不卡| 大乳VIDEOS巨大吃奶| 无码精品H动漫成人影院| 韩国三级香港三级日本三级L| 亚洲欧美精品视频| 毛片内射久久久一区| WWWXXX国产| 天堂AⅤ大芭蕉伊人AV| 国产真实乱对白精彩| 亚洲无人区码一码二码三码区别| 每天都在挨CAO中醒来H| 啊轻点灬太粗嗯太深了用力| 熟女一区二区三区| 好了AV第四综合无码久久| 一二三四在线观看免费中文| 欧美精品亚洲精品日韩专区VA | 羞羞漫画十八禁啪啪漫画免费| 精品无码国产污污污免费网站国产 | 久久综合给合久久狠狠狠97色6| 99亚洲国产精品精华液| 少妇被又大又粗又爽毛片久久黑人| 国产欧美日韩一区二区三区在线| 亚洲国产一区二区A毛片| 蜜臀AV一区二区三区四区| 必看无人区一码二码三码| 无人高清影视在线观看| 久草玖玖玖爱在线资源| 97人妻碰碰视频免费上线| 色视频综合无码一区二区三区 | 人人婷婷色综合五月第四人色阁| 国产精品成人永久在线四虎| 亚洲色大成网站WWW| 欧美最厉害的喷水VIDEOS | Z0OZO0人善之交另类| 午夜人妻免费视频| 狂野AV人人澡人人添| 成人免费观看的A级毛片| 亚洲AV无码专区成人网址| 免费无遮挡又黄又爽网站| 国产AV熟女一区二区三区| 亚洲熟妇无码乱子AV电影| 人妻尝试又大又粗久久| 国产亚洲欧美日韩在线一区二区三| 一区二区精品视频| 日韩人妻中文字幕| 交换人生俱乐部全文免费阅读| 99国产欧美久久久精品| 无码AV蜜臀AⅤ色欲在线| 麻豆视传媒官方直接进入| 国产AV大陆精品一区二区三区 | 久久亚洲AV无码AV男人的天堂| 被多个男人调教奶头玩奶头| 亚洲MV砖码砖区2021在线| 欧美成人性生免费看的| 国产猛男GAY1069视频| 2022国产成人精品视频人| 西西人体艺术摄影| 欧美黑人aAAAAAAa| 国产亚洲欧美日韩在线一区二区三| 777爽死你免费看一二区无码|