集合、Collection接口特點和常用方法

1、集合介紹

對于保存多個數據使用的是數組,那么數組有不足的地方。比如,

  • 長度開始時必須指定,而且一旦制定,不能更改。

  • 保存的必須為同一類型的元素。

  • 使用數組進行增加/刪除元素的示意代碼,也就是比較麻煩。

為了解決數組這些不足之處,那么就可以引出集合來處理。下面先說一下集合的好處。

  • 可以動態保存任意多個對象,使用比較方便。

  • 提供了一系列方便的操作對象:add、remove、set、get等。

  • 使用集合添加或刪除新元素,代碼簡潔。

集合體系圖如下,Collection是單列接口,Map是雙列接口。虛線可以看成實現關系,實線可以看成繼承關系。

2、Collection接口實現類的特點

public interface Collection<E>extends Iterable<E>

  • Collection實現子類,可以存放多個元素,每個元素可以是Object。

  • Collection的實現類,有些是有序地(List),有些不是有序(Set)。

  • 有些Collection的實現類,可以存放重復的元素,有些不可以。

  • Collection接口沒有直接的實現子類,是通過它的子接口Set和List來實現的。

3、Collection接口常用方法。

以實現子類ArraysList來演示。

方法總結:

add()? // 添加單個元素

remove() //刪除指定元素

contains() //查找元素是否存在

size() //獲取元素個數

isEmpty() //判斷是否為空

clear() //清空

addAll() //添加多個元素

contains All() //查找多個元素是否都存在

removeAll() //刪除多個元素

//由于接口不能直接被實例化,只有實現了接口的類才能被實例化,所以這里我們使用ArrayList//使用List接口接收List list = new ArrayList();//add() 添加單個元素list.add("jack");list.add("marry");list.add("smith");System.out.println(list);//[jack, marry, smith]//remove() 刪除指定元素list.remove("jack");System.out.println(list);//[marry, smith]//contains() 查找元素是否存在System.out.println(list.contains("jack"));//false//size() 獲取元素個數System.out.println(list.size());//2//isEmpty() 判斷是否為空System.out.println(list.isEmpty());//false//clear() 清空list.clear();System.out.println(list.isEmpty());//true//addAll() 添加多個元素List list1 = new ArrayList();list1.add(1);list1.add("終極筆記");list1.add("老九門");list.addAll(list1);System.out.println(list1);//[1, 終極筆記, 老九門]// containsAll() 查找多個元素是否都存在System.out.println(list1.containsAll(list1));//true//removeAll() 刪除多個元素list1.removeAll(list1);//trueSystem.out.println(list1.size());//0

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

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

相關文章

一種簡單實用的ollvm反混淆的方案與源碼

我是一名從事反欺詐&風控&設備指紋相關的工作&#xff0c;最近對ollvm的如何逆向的問題進行了學習與思考。 ollvm是一個開源免費的so混淆工具&#xff0c;對于逆向的小白來說簡直是災難性的存在。 這個例子是超簡單&#xff0c;我想每個人都可以學會跟掌握&#xff0c;…

RustGUI學習(iced/iced_aw)之擴展小部件(二十五):如何使用tab部件來創建tab多頁面切換?

前言 本專欄是學習Rust的GUI庫iced的合集,將介紹iced涉及的各個小部件分別介紹,最后會匯總為一個總的程序。 iced是RustGUI中比較強大的一個,目前處于發展中(即版本可能會改變),本專欄基于版本0.12.1. 概述 這是本專欄的第二十五篇,主要講述tab頁面切換部件的使用,會結…

[linux] bash中的單引號(‘)和雙引號(“)

在命令行中&#xff0c;單引號()和雙引號(")在某些情況下會有不同的效果&#xff0c;尤其是在涉及bash變量和特殊字符的解析時。在你給出的兩個命令中&#xff1a; ps -ef|grep "tokenize"|grep -v grep|awk {print $2} 和 ps -ef|grep "tokenize"…

PCL點云邊界提取——源碼解析

文章目錄 一、概述二、PCL邊緣檢測源碼定位過程1、初始化2、檢查輸入點云是否稠密3、迭代處理每個點4、輸出三、修改后的過程調用一、概述 在PCL中集成了一個非常經典的點云邊緣檢測算法,這個算法也在 PCL點云邊界提取這篇博客中講解了。該文章只介紹了AC算法的原理及接口調用…

hook中useContext到底怎么用

語法: somecontext createContext(defaultValue); 作用: 避免了組件嵌套太深, 頂層變量層層傳遞的麻煩. 如何消費頂層數據 第一步: 用createContext聲明一個context上下文變量 import { createContext } from react;export const GlobalContext createContext({} as any);…

面試問題小結

說說你的項目&#xff0c;從里面學到啥了&#xff08;隨便說&#xff09; CAS 線程池 的各個方面 線程咋創建&#xff08;4種方式&#xff09; 說一下聚集索引和非聚集索引 50w男 50w女 &#xff0c;在B樹中咋存儲的&#xff08;類似下面的圖&#xff0c;變通一下就行了&a…

本是夢中人,常作花下客。心中自往來,知我有幾個。

我們總是喜歡拿“順其自然”來敷衍人生道路上的荊棘坎坷&#xff0c;卻很少承認&#xff0c;真正的順其自然&#xff0c; 其實是竭盡所能之后的不強求&#xff0c; 而非兩手一攤的不作為。 一花凋零荒蕪不了整個春天&#xff0c; 一次挫折也荒廢不了整個人生。 多年后&#x…

近臨算法(個人總結版)

背景 近鄰算法&#xff08;Nearest Neighbor Algorithm&#xff09;是一種基本但非常有效的分類和回歸方法。最早由Fix和Hodges在1951年提出&#xff0c;經過幾十年的發展和改進&#xff0c;已成為數據挖掘、模式識別和機器學習領域的重要工具。近鄰算法基于相似性原則&#x…

通過el-tree自定義渲染網頁版工作目錄,實現鼠標懸浮顯示完整名稱、用icon區分文件和文件夾等需求

目錄 一、通過el-tree自定義渲染網頁版工作目錄 1.1、需求介紹 1.2、使用el-tree生成文檔目錄 1.2.1、官方基礎用法 ①效果 ②代碼&#xff1a; 1.2.2、自定義文檔目錄&#xff08;實現鼠標懸浮顯示完整名稱、用icon區分文件和文件夾&#xff09; ①效果&#xff08;直接效…

find 幾招在 Linux 中高效地查找目錄

1. 介紹 在 Linux 操作系統中&#xff0c;查找目錄是一項常見的任務。無論是系統管理員還是普通用戶&#xff0c;都可能需要查找特定的目錄以執行各種操作&#xff0c;如導航文件系統、備份數據、刪除文件等。Linux 提供了多種命令和工具來幫助我們在文件系統中快速找到目標目…

淺談后端整合Springboot框架后操作基礎配置

boot基礎配置 現在不訪問端口8080 可以嗎 我們在默認啟動的時候訪問的是端口號8080 基于屬性配置的 現在boot整合導致Tomcat服務器的配置文件沒了 我們怎么去修改Tomcat服務器的配置信息呢 配置文件中的配置信息是很多很多的... 復制工程 保留工程的基礎結構 抹掉原始…

樸素貝葉斯+SMSSpamCollections

1. 打開 Jupyter 后&#xff0c;在工作目錄中&#xff0c;新建一個文件夾命名為 Test01 &#xff0c;并且在文件夾中導入數據 集。在網頁端界面點擊 “upload” 按鈕&#xff0c;在彈出的界面中選擇要導入的數據集。然后數據集出現 在 jupyter 文件目錄中&#xff0c;此時…

Vue.js Promise 與 async/await 的比較

在現代 Web 開發中&#xff0c;異步操作是不可避免的。在處理異步數據獲取時&#xff0c;開發人員通常會使用 Promise 或 async/await。雖然兩者都可以實現相同的功能&#xff0c;但它們在代碼風格、可讀性和錯誤處理等方面有所不同。本文將對這兩種方法進行比較&#xff0c;并…

初識Qt:從Hello world到對象樹的深度解析

Qt中的對象樹深度解析 Hello world1.圖形化界面創建命令行式創建在棧上創建在堆上創建為什么傳文本需要QString&#xff0c;std::string不行嗎&#xff1f;那為什么要傳入this指針&#xff1f;為什么new后不用顯示調用delete函數呢&#xff0c;不會造成內存泄漏問題嗎&#xff…

python:__class_getitem__使用以及cached_property源碼分析

python&#xff1a;__class_getitem__使用以及cached_property源碼分析 1 前言 Python中如何模擬泛型類型&#xff1f; 當使用類型標注時&#xff0c;使用 Python 的方括號標記來形參化一個 generic type 往往會很有用處。 例如&#xff0c;list[int] 這樣的標注可以被用來表…

深入 OpenFeign:探索緩存、QueryMap、MatrixVariable 和 CollectionFormat 的高級用法以實現優雅的遠程調用

免費多模型AI網站,支持豆包、GPT-4o、谷歌Gemini等AI模型&#xff0c;無限制使用&#xff0c;快去白嫖&#x1f449;海鯨AI 一、OpenFeign簡介 OpenFeign 是一個聲明式的 HTTP 客戶端&#xff0c;它使得我們可以通過簡單的注解和接口定義來調用遠程 HTTP 服務。與傳統的 HTTP …

K8S集群再搭建

前述&#xff1a;總體是非常簡單的&#xff0c;就是過程繁瑣&#xff0c;不過都是些重復的操作 master成員: [controller-manager, scheduler, api-server, etcd, proxy,kubelet] node成員: [kubelet, proxy] master要修改的配置文件有 1. vi /etc/etcd/etcd.conf # 數…

Mokito的一些API

Mockito是一個Java單元測試框架&#xff0c;它允許開發者創建和配置模擬對象&#xff08;mock objects&#xff09;&#xff0c;以便在隔離的環境中測試代碼&#xff0c;尤其是當實際對象難以構造或其行為不確定時。下面是一些核心的Mockito API及其使用場景和代碼示例。 基礎…

wordpress教程視頻 wordpress教程網盤 wordpress教程推薦wordpress教程網

WordPress&#xff0c;作為一款強大且靈活的開源內容管理系統&#xff0c;已成為許多網站開發者與運營者的首選。其強大的功能、豐富的插件以及易于上手的特點&#xff0c;使得無論是初學者還是專業開發者都能輕松構建出個性化的網站。然而&#xff0c;對于初學者來說&#xff…

JUnit5標記測試用例

使用場景&#xff1a; 通過Tag對用例分組&#xff1a; 環境分組&#xff1a;測試環境、預發布環境階段分組&#xff1a;冒煙用例版本分組&#xff1a;V1.1、V1.2 Tag標記用例&#xff1a; 設置標簽根據標簽執行 結合Maven執行結合測試套件執行 設置標簽&#xff1a; 通過T…