日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 集合系列(1): Collection架构

發布時間:2025/3/20 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 集合系列(1): Collection架构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

戳上面的藍字關注我們哦!


?精彩內容?


?

精選java等全套視頻教程

精選java電子圖書

大數據視頻教程精選

java項目練習精選

概要

首先,我們對Collection進行說明。下面先看看Collection的一些框架類的關系

Collection是一個接口,它主要的兩個分支是:List 和 Set。

List和Set都是接口,它們繼承于Collection。List是有序的隊列,List中可以有重復的元素;而Set是數學概念中的集合,Set中沒有重復元素!
List和Set都有它們各自的實現類。

為了方便,我們抽象出了AbstractCollection抽象類,它實現了Collection中的絕大部分函數;這樣,在Collection的實現類中,我們就可以通過繼承AbstractCollection省去重復編碼。AbstractList和AbstractSet都繼承于AbstractCollection,具體的List實現類繼承于AbstractList,而Set的實現類則繼承于AbstractSet。

另外,Collection中有一個iterator()函數,它的作用是返回一個Iterator接口。通常,我們通過Iterator迭代器來遍歷集合。ListIterator是List接口所特有的,在List接口中,通過ListIterator()返回一個ListIterator對象。

接下來,我們看看各個接口和抽象類的介紹;然后,再對實現類進行詳細的了解。

1 Collection簡介

Collection的定義如下:

public interface Collection<E> extends Iterable<E> {}

它是一個接口,是高度抽象出來的集合,它包含了集合的基本操作:添加、刪除、清空、遍歷(讀取)、是否為空、獲取大小、是否保護某元素等等。

Collection接口的所有子類(直接子類和間接子類)都必須實現2種構造函數:不帶參數的構造函數 和 參數為Collection的構造函數。帶參數的構造函數,可以用來轉換Collection的類型。

// Collection的API abstract boolean ? ? ? ? add(E object) abstract boolean ? ? ? ? addAll(Collection<? extends E> collection) abstract void ? ? ? ? ? ?clear() abstract boolean ? ? ? ? contains(Object object) abstract boolean ? ? ? ? containsAll(Collection<?> collection) abstract boolean ? ? ? ? equals(Object object) abstract int ? ? ? ? ? ? hashCode() abstract boolean ? ? ? ? isEmpty() abstract Iterator<E> ? ? iterator() abstract boolean ? ? ? ? remove(Object object) abstract boolean ? ? ? ? removeAll(Collection<?> collection) abstract boolean ? ? ? ? retainAll(Collection<?> collection) abstract int ? ? ? ? ? ? size() abstract <T> T[] ? ? ? ? toArray(T[] array) abstract Object[] ? ? ? ?toArray()

2 List簡介

List的定義如下:

public interface List<E> extends Collection<E> {}

List是一個繼承于Collection的接口,即List是集合中的一種。List是有序的隊列,List中的每一個元素都有一個索引;第一個元素的索引值是0,往后的元素的索引值依次+1。和Set不同,List中允許有重復的元素。
List的官方介紹如下:

A List is a collection which maintains an ordering for its elements. Every element in the List has an index. Each element can thus be accessed by its index, with the first index being zero. Normally, Lists allow duplicate elements, as compared to Sets, where elements have to be unique.

關于API方面。既然List是繼承于Collection接口,它自然就包含了Collection中的全部函數接口;由于List是有序隊列,它也額外的有自己的API接口。主要有“添加、刪除、獲取、修改指定位置的元素”、“獲取List中的子隊列”等。

// Collection的API abstract boolean ? ? ? ? add(E object) abstract boolean ? ? ? ? addAll(Collection<? extends E> collection) abstract void ? ? ? ? ? ?clear() abstract boolean ? ? ? ? contains(Object object) abstract boolean ? ? ? ? containsAll(Collection<?> collection) abstract boolean ? ? ? ? equals(Object object) abstract int ? ? ? ? ? ? hashCode() abstract boolean ? ? ? ? isEmpty() abstract Iterator<E> ? ? iterator() abstract boolean ? ? ? ? remove(Object object) abstract boolean ? ? ? ? removeAll(Collection<?> collection) abstract boolean ? ? ? ? retainAll(Collection<?> collection) abstract int ? ? ? ? ? ? size() abstract <T> T[] ? ? ? ? toArray(T[] array) abstract Object[] ? ? ? ?toArray() // 相比與Collection,List新增的API: abstract void ? ? ? ? ? ? ? ?add(int location, E object) abstract boolean ? ? ? ? ? ? addAll(int location, Collection<? extends E> collection) abstract E ? ? ? ? ? ? ? ? ? get(int location) abstract int ? ? ? ? ? ? ? ? indexOf(Object object) abstract int ? ? ? ? ? ? ? ? lastIndexOf(Object object) abstract ListIterator<E> ? ? listIterator(int location) abstract ListIterator<E> ? ? listIterator() abstract E ? ? ? ? ? ? ? ? ? remove(int location) abstract E ? ? ? ? ? ? ? ? ? set(int location, E object) abstract List<E> ? ? ? ? ? ? subList(int start, int end)

3 Set簡介

Set的定義如下:

public interface Set<E> extends Collection<E> {}

Set是一個繼承于Collection的接口,即Set也是集合中的一種。Set是沒有重復元素的集合。

關于API方面。Set的API和Collection完全一樣。

// Set的API abstract boolean ? ? ? ? add(E object) abstract boolean ? ? ? ? addAll(Collection<? extends E> collection) abstract void ? ? ? ? ? ? clear() abstract boolean ? ? ? ? contains(Object object) abstract boolean ? ? ? ? containsAll(Collection<?> collection) abstract boolean ? ? ? ? equals(Object object) abstract int ? ? ? ? ? ? hashCode() abstract boolean ? ? ? ? isEmpty() abstract Iterator<E> ? ? iterator() abstract boolean ? ? ? ? remove(Object object) abstract boolean ? ? ? ? removeAll(Collection<?> collection) abstract boolean ? ? ? ? retainAll(Collection<?> collection) abstract int ? ? ? ? ? ? size() abstract <T> T[] ? ? ? ? toArray(T[] array) abstract Object[] ? ? ? ? toArray()

4 AbstractCollection

AbstractCollection的定義如下:

public abstract class AbstractCollection<E> implements Collection<E> {}

AbstractCollection是一個抽象類,它實現了Collection中除iterator()和size()之外的函數。
AbstractCollection的主要作用:它實現了Collection接口中的大部分函數。從而方便其它類實現Collection,比如ArrayList、LinkedList等,它們這些類想要實現Collection接口,通過繼承AbstractCollection就已經實現了大部分的接口了。

5 AbstractList

AbstractList的定義如下:

public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> {}

AbstractList是一個繼承于AbstractCollection,并且實現List接口的抽象類。它實現了List中除size()、get(int location)之外的函數。
AbstractList的主要作用:它實現了List接口中的大部分函數。從而方便其它類繼承List。
另外,和AbstractCollection相比,AbstractList抽象類中,實現了iterator()接口。

6 AbstractSet

AbstractSet的定義如下:

public abstract class AbstractSet<E> extends AbstractCollection<E> implements Set<E> {}

AbstractSet是一個繼承于AbstractCollection,并且實現Set接口的抽象類。由于Set接口和Collection接口中的API完全一樣,Set也就沒有自己單獨的API。和AbstractCollection一樣,它實現了List中除iterator()和size()之外的函數。
AbstractSet的主要作用:它實現了Set接口中的大部分函數。從而方便其它類實現Set接口。

7 Iterator

Iterator的定義如下:

public interface Iterator<E> {}

Iterator是一個接口,它是集合的迭代器。集合可以通過Iterator去遍歷集合中的元素。Iterator提供的API接口,包括:是否存在下一個元素、獲取下一個元素、刪除當前元素。
注意:Iterator遍歷Collection時,是fail-fast機制的。即,當某一個線程A通過iterator去遍歷某集合的過程中,若該集合的內容被其他線程所改變了;那么線程A訪問集合時,就會拋出ConcurrentModificationException異常,產生fail-fast事件。關于fail-fast的詳細內容,我們會在后面專門進行說明。TODO

// Iterator的API abstract boolean hasNext() abstract E next() abstract void remove()

8 ListIterator

ListIterator的定義如下:

public interface ListIterator<E> extends Iterator<E> {}

ListIterator是一個繼承于Iterator的接口,它是隊列迭代器。專門用于便利List,能提供向前/向后遍歷。相比于Iterator,它新增了添加、是否存在上一個元素、獲取上一個元素等等API接口。

// ListIterator的API // 繼承于Iterator的接口 abstract boolean hasNext() abstract E next() abstract void remove() // 新增API接口 abstract void add(E object) abstract boolean hasPrevious() abstract int nextIndex() abstract E previous() abstract int previousIndex() abstract void set(E object)

回復以下關鍵字獲取更多學習資源

java基礎|html5|css|js|jquery|angularJs|ajax|node.js|javaEE基礎| |struts2|hibernate|spring|svn|maven|springmvc|mybatis|linux|oracle| |luncene|solr|redis|springboot|架構師資源|dubbo|php|webservice|c++基礎|nginx|mysql|sqlserver|asp.net|大數據|java項目

更多學習資源逐步更新,請置頂公眾號不要錯過更新

好好學java

每日推送java優質文章、視頻教程、熱點資訊

微信ID:sihailoveyan

長按左側二維碼關注


總結

以上是生活随笔為你收集整理的Java 集合系列(1): Collection架构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av动漫网 | 四虎黄色网址 | 黄色字幕网 | 欧美日韩在线影院 | 少妇毛片 | 国产男女爽爽爽 | 欧美大片在线免费观看 | 黄色成人av网站 | 午夜偷拍视频 | 真人真事免费毛片 | 亚洲操操操 | 天天艹天天操 | 久久黄色录像 | 91精品视频一区二区三区 | a黄色片| 激情亚洲 | asian日本肉体pics| 息与子五十路翔田千里 | 国产嫩草影院久久久 | 久久欲| 91丝袜一区二区三区 | 麻豆视频一区 | 国产噜噜噜 | 午夜精品极品粉嫩国产尤物 | 国产传媒中文字幕 | 中文字幕女同 | 国产综合精品 | 国产区在线观看 | 久久久久免费精品 | 木下凛凛子av一区二区三区 | 制服丝袜中文字幕在线 | 黄色一级视频在线观看 | 在线一区二区三区视频 | 亚洲最大免费视频 | 在线视频黄 | 伊人天堂在线 | 波多野结衣人妻 | 91久久精品无码一区二区 | 一级中国毛片 | 蜜桃视频日韩 | 欧美一级特黄视频 | 成人宗合 | 美女视频黄免费 | 国产精品无码白浆高潮 | 成人免费视频国产免费麻豆 | 欧美一区二区在线免费观看 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 国产小视频免费在线观看 | 中文字幕在线不卡视频 | 色大师在线观看 | 亚洲第一天堂久久 | 午夜天堂影院 | 亚洲欧美伊人 | 美女视频黄的免费 | 无码人妻精品一区二区三区99不卡 | 丰满放荡岳乱妇91ww | 五月婷视频 | 影音先锋国产在线 | 国产农村妇女aaaaa视频 | 爱情岛黄色 | 91精品人妻一区二区三区蜜桃欧美 | 永久av | 国产美女无遮挡网站 | 日本精品一区二区三区在线观看 | 国产精品自产拍高潮在线观看 | 精品亚洲永久免费精品 | 日韩欧美一卡二卡 | 成片在线观看 | 在线免费福利视频 | 中文字幕一区二区三区免费视频 | 色综合网站| 日韩成人综合网 | 成人性色生活片 | 天天躁日日躁狠狠躁免费麻豆 | 黄色特级毛片 | 欧美国产精品一区二区三区 | 性猛交╳xxx乱大交 偷偷操不一样的久久 | 欧美超碰在线观看 | 精品视频一二 | 激情六月色 | 无码人妻aⅴ一区二区三区69岛 | 欧美精品一区二区三区三州 | 欧美少妇b | 久久精品五月天 | 国产激情视频在线播放 | 老熟女高潮一区二区三区 | a爱视频| 欧美综合图区 | 日韩乱码人妻无码中文字幕久久 | 日本欧美国产 | 久热这里只有精品6 | 激情图片区 | 久久久国产精品一区二区三区 | 久久金品 | 福利国产在线 | 99热在线播放 | 99re这里只有精品在线 | 六月激情网 | 欧美xxxxx少妇 |