JDK源碼解析之Java.util.Collection

Collection是單例集合的頂層接口,它表示一組對象,這些對象也稱為Collection的元素,JDK 不提供此接口的任何直接實現,它提供更具體的子接口(如Set和List)實現

一、源碼解析

1、接口定義

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

collection繼承自Iterable,所以其有Iterable的所有相關的方法。

2、查詢方法

		//		返回數組的長度,如果數組的長度大于Integer最大值,返回Integer最大值。int size();//		判斷該集合是否為有元素boolean isEmpty();//		判斷元素o是否在集合中boolean contains(Object o);//		獲取集合的交集,如果集合有改變那么返回為true,否則返回為false。boolean containsAll(Collection<?> c);

3、操作集合元素的方法

		//	將元素E添加到該集合中boolean add(E e);//	將集合c添加到該集合中boolean addAll(Collection<? extends E> c);//	將該集合清空void clear();//	從集合中刪除o元素boolean remove(Object o);//	從集合中刪除c集合boolean removeAll(Collection<?> c);		//	僅保留該集合中那些也包含在指定集合c中的元素boolean retainAll(Collection<?> c);//	刪除滿足給定謂詞的此集合的所有元素default boolean removeIf(Predicate<? super E> filter) {Objects.requireNonNull(filter);boolean removed = false;final Iterator<E> each = iterator();while (each.hasNext()) {if (filter.test(each.next())) {each.remove();removed = true;}}return removed;}

4、其他方法

		//		返回一個包含此集合中所有元素的數組Object[] toArray();//		返回包含此集合中所有元素的數組; 返回的數組的運行時類型是指定數組的運行時類型<T> T[] toArray(T[] a);//		獲取集合的流,返回可能并行的以此集合作為源的Streamdefault Stream<E> stream() {return StreamSupport.stream(spliterator(), false);}//		獲取集合的并行default Stream<E> parallelStream() {return StreamSupport.stream(spliterator(), true);}//		獲取迭代器Itertorpublic abstract Iterator<E> iterator();//		返回集合的Spliteratordefault Spliterator<E> spliterator() {return Spliterators.spliterator(this, 0);}//		判斷兩個集合是否相同boolean equals(Object o);// 		獲取集合的hashcodeint hashCode();

二、總結

Collection接口是最基本的集合接口,它在繼承了Iterable接口方法的同時,提供了對集合對象進行基本操作的通用接口方法。Collection接口在Java 類庫中有很多具體的實現,在后面我會向大家一一介紹。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/535639.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/535639.shtml
英文地址,請注明出處:http://en.pswp.cn/news/535639.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vim 命令操作

vim命令操作命令模式dd 編輯模式 末行模式 1.地址定界&#xff1a; startpos,endpos #:特定的第#行&#xff0c;例如S即第5行;:當前行;$:最后一行; #,#:指定行范圃,左側起始行&#xff0…

JDK源碼解析之Java.util.Collections

java.util.Collections 是一個包裝類。它包含有各種有關集合操作的靜態多態方法。此類不能實例化&#xff0c;就像一個工具類,服務于Java的Collection框架。 一、源碼解析 1、不可實例化 private Collections() {}Collections是util包中一個不可實例化的類。 2、優化參數 pri…

ubuntu下安裝jdk

安裝1.5 sudo apt-get install sun-java5-jdk sudo update-alternatives --config java sudo update-alternatives --config javac 安裝1.6 sudo apt-get install sun-java6-jdk sudo update-alternatives --config java sudo update-alternatives --config javac 轉載:http:/…

使用validate驗證數據庫

驗證數據備份集是不是可以用來做恢復和數據文件是否損壞、壞塊 三種方式&#xff1a; 1.validate validate database ;validate tablespace users; validate datafile 1; validate archivelog all validate datafile 1 block 10; validate backupset 28; db…

JDK源碼解析之java.util.AbstractCollection

AbstractCollection類提供了collection的實現類應該具有的基本方法&#xff0c;具有一定的普適性&#xff0c;可以從大局上了解collection實現類的主要功能。 java.util.AbstractCollection這個類提供了對接口Collection骨骼級的實現。 一、源碼解析 1、iterator():返回一個迭…

溝通linux與windows的wine

據Netcraft網站調查&#xff0c;現在互聯網上的主機有75&#xff05;以上采用Linux作為操作系統。作為服務器操作系統&#xff0c;Linux已經站穩了腳步&#xff0c;可是在桌面 操作系統上&#xff0c;還是微軟的“瘟到死”一支獨秀。這倒不是說Linux不好&#xff0c;很大原因我…

備份spfil、控制文件等

delete backup&#xff1b; delete backupset delete noprompt backup backup keep forver database 永久保存恢復目錄中支持此命令 show parameter control 備份spfile backup spfile backup current contrlfile configure controlfile autoback …

日常問題——阿里云服務器ssh經常一段時間就斷掉解決辦法

#vim /etc/ssh/sshd_config 找到下面兩行 #ClientAliveInterval 0 #ClientAliveCountMax 3 去掉注釋&#xff0c;改成 ClientAliveInterval 30 ClientAliveCountMax 86400 這兩行的意思分別是 1、客戶端每隔多少秒向服務發送一個心跳數據 2、客戶端多少秒沒有相應&#…

在Ubuntu 8.04 LTS(hardy)下安裝配置nginx和fastcgi方式的php

最近我們(瑞豪開源Xen VPS: http://www.RasHost.com)的一個客戶要求在他的Ubuntu 8.04 VPS上安裝一個高性能的nginx&#xff0c;下面是我的安裝記錄。 由于Ubuntu 804已經包含了nginx&#xff0c;所以根本不要編譯&#xff0c;安裝超簡單&#xff01; 在VPS上修改/etc/apt/so…

apt-get包管理詳解

apt-get使用source.list文件進行軟件包管理。如果您想了解關于如何編輯和更新source.list中的條目的信息&#xff0c;請參閱SourcesList“起初GNU/Linux系統中只有.tar.gz。用戶必須自己編譯他們想使用的每一個程序。在Debian出現之後&#xff0c;人們認為有必要在系統中添 加一…

awk命令

awk是一個強大的文本分析工具&#xff0c;相對于grep的查找&#xff0c;sed的編輯&#xff0c;awk在其對數據分析并生成報告時&#xff0c;顯得尤為強大。簡單來說awk就是把文件逐行的讀入&#xff0c;以空格為默認分隔符將每行切片&#xff0c;切開的部分再進行各種分析處理。…

ubuntu安裝字符集

sudo locale-gen zh_CN.GBK sudo locale-gen zh_CN

正則表達式和grep

正則表達式(regular expression, RE)是一種字符模式&#xff0c;用于在查找過程中匹配指定的字符。 在大多數程序里&#xff0c;正則表達式都被置于兩個正斜杠之間;例如/lv[o0]e/就是由正斜杠界定的正則表達式&#xff0c;它將匹配被查找的行中任何位置出現的相同模式。在正則表…

GC 垃圾回收

垃圾回收機制是由垃圾收集器Garbage Collection GC來實現的&#xff0c;GC是后臺的守護進程。它的特別之處是它是一個低優先級進程&#xff0c;但是可以根據內存的使用情況動態的調整他的優先級。因此&#xff0c;它是在內存中低到一定限度時才會自動運行&#xff0c;從而實現對…

如何讓你變得魅力十足

我們每個人都希望自己在某些方面對他人來說是有用的。我們渴望那種被人需要的感覺&#xff0c;覺得自己是有能力的&#xff0c;就像我們在某方面很與眾不同&#xff0c;很獨特一樣。 有些人非常有吸引力。他們是那些每當需要幫助便會被想起的人。他們是那些另你覺得非常有幫助…

日志linux

syslog日志系統&#xff1a; syslogd 系統&#xff0c;非內核產生的信息 man 2 syslog klogd 內核&#xff0c;專門負責內核產生的信息 man 3 syslog /var/log/messages 系統標準錯誤日志信息&#xff0c;非內核 syslogd /var/log/dmesg klogd 共同配置文件etc/…

sysbench的安裝和做性能測試

sysbench是一個模塊化的、跨平臺、多線程基準測試工具&#xff0c;主要用于評估測試各種不同系統參數下的數據庫負載情況。關于這個項目的詳細介紹請看&#xff1a;http://sysbench.sourceforge.net。它主要包括以下幾種方式的測試&#xff1a;1、cpu性能2、磁盤io性能3、調度程…

加密解密

PKI public key Infrastructure 公鑰基礎設施 CRl 證書吊銷列表 CA證書頒發機構 Certificate Authority x509 證書 包括公鑰、過期時間、證書的合法擁有者、證書如何被使用 CA的信息 CA的校驗碼等等 Pki實現方式 TLS/ssl:x509 opengpg ssl安全的套接字層…

高性能MySQL(1)——MYSQL架構

MySQL最重要、最與眾不同的特性是它的存儲引擎架構&#xff0c;這種架構將查詢處理與數據的存儲/提取相分離&#xff0c;使得可以在使用時根據不同的需求來選擇數據存儲的方式。 一、Mysql邏輯架構 如果能在頭腦中構建出一幅MySQL各組件之間如何協同工作的架構圖&#xff0c;就…

數據庫設計中的14個關鍵技巧

1. 原始單據與實體之間的關系  可以是一對一、一對多、多對多的關系。在一般情況下&#xff0c;它們是一對一的關系&#xff1a;即一張原始單據對應且只對應一個實體。在特殊情況下&#xff0c;它們可能是一對多或多對一的關系&#xff0c;即一張原始單證對應多個實體&#xf…