java集合概念_JAVA集合概念

Java集合是使程序能夠存儲和操縱元素不固定的一組數據。 所有Java集合類都位于java.uti包中。

與Java數組不同,Java集合中不能存放基本數據類型,只能存放對象的引用。但是在JDK5.0以后的版本當中,JAVA增加了

“自動裝箱”和“自動拆箱”的機制,比如如果要存入一個INT類型的數據,JVM會把數據包裝成Integer然后再存入集合,

看起來集合能夠存入基本數據類型,其實是不能的只是多了一個包裝數據的過程。

而且存入集合的數據都會被轉換成OBject類型。

Java集合主要分為以下

3種類型:

Set(集):集合中的對象不按特定方式排序,并且沒有重復對象。它的有些實現類能對集合中的對象按特定方式排序。一個存儲區只能存單一值元素。

List(列表):集合中的對象按照索引位置排序,可以有重復對象,允許按照對象在集合中的索引位置檢索對象。List

與數組有些相似。

Map(映射):集合中的每一個元素包含一對鍵對象和值對象,集合中沒有重復的鍵對象,但值對象可以重復。它的有些實現

類能對集合中的鍵對象進行排序。

Collection和Iterator接口:

Collection接口:

在Collection接口中聲明了適合Java集合(只包括Set和List)的通用方法。

Collection接口方法列表

方法?                描述

boolean?add(Object?o)?      ? 向集合加入一個對象的引用

void?clear()??            刪除集合中所有對象,即不在持有對象的引用

boolean?contains(Object?o)?    ?判斷在集合中是否持有對象的引用

boolean?isEmpty()         ?判斷集合是否為空

Iterator?iterator()         ?返回一個Iterator對象,可以用它來遍歷集合中的元素

boolean?remove(Object?o) ?    ?從集合中刪除一個對象的引用

int?size() ? ?            返回集合中元素的個數

object[]?toArray()?         返回一個數組,該數組包含集合中的所有元素

注:Set接口和List接口都繼承了Collection接口,而Map接口沒有繼承Collection接口,因此Set和List對象可以調用以下方法,但Map對象不能調用。

Iterator接口:

Collection接口的iterator()和toArray()方法都用于獲得集合中的所有元素,前者返回一個Iterator對象,后者返回一個包含集合中所有元素的數組。

Iterator接口隱藏底層集合中的數據結構,提供遍歷各種類型集合的統一接口。Iterator接口中聲明如下的方法:

1,、hasNext():判斷集合中的元素是否遍歷完畢,如果沒有,返回true。

2、next():返回下一個元素。

3、remove():從集合中刪除上一個由next()方法返回的元素。

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

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

相關文章

項目計劃總結

項目計劃總結 任務 日期 聽課(min) 編程(min) 閱讀課本(min) 日總結(min) 2017/3/13 120 70 190 2017/3/14 80 80 2017/3/15 90 30 120 2017/3/16 …

HTML5新特性之Mutation Observer

Mutation Observer(變動觀察器)是監視DOM變動的接口。當DOM對象樹發生任何變動時,Mutation Observer會得到通知。 要概念上,它很接近事件。可以理解為,當DOM發生變動會觸發Mutation Observer事件。但是,它與…

leetcode230. 二叉搜索樹中第K小的元素(中序遍歷)

給定一個二叉搜索樹,編寫一個函數 kthSmallest 來查找其中第 k 個最小的元素。說明: 你可以假設 k 總是有效的,1 ≤ k ≤ 二叉搜索樹元素個數。示例 1:輸入: root [3,1,4,null,2], k 13/ \1 4\2 輸出: 1解題思路 變量 cnt:統計已經按序遍…

Python操作MongoDB - 極簡教程

2019獨角獸企業重金招聘Python工程師標準>>> Python 連接 MongoDB 安裝PyMongo模塊 pip install pymongo使用MongoClient建立連接 from pymongo import MongoClient # 以下為三種建立連接的方式 #client MongoClient() #client MongoClient(localhost, 27017) #cl…

nuxt.js的核心代碼_Nuxt.js中的通用應用程序代碼結構

nuxt.js的核心代碼by Krutie Patel通過克魯蒂帕特爾(Krutie Patel) Nuxt.js中的通用應用程序代碼結構 (Universal application code structure in Nuxt.js) Nuxt.js中的源代碼結構的簡要摘要 (A brief summary of source code structure in Nuxt.js) Are you new to the Nuxt.…

java 省市區三級聯動_AJAX省市區三級聯動下拉菜單(java版)

此小程序的功能主要是采用異步請求方式從數據庫中調取省市區信息顯示到下拉列表:代碼如下:建立數據庫中的代碼和一些配置文件信息就省略了,主要有JavaScript中的代碼為:$(document).ready(function(){$.get("getProvince.do&…

20155305喬磊2016-2017-2《Java程序設計》第四周學習總結

20155305喬磊2016-2017-2《Java程序設計》第四周學習總結 教材學習內容總結 繼承 繼承就是避免多個類間重復定義共同行為。面向對象中,子類繼承父類,就是把程序中相同的代碼部分提升為父類。extends關鍵字,表示前者會擴充后者的行為&#xff…

leetcode29. 兩數相除(位運算)

給定兩個整數,被除數 dividend 和除數 divisor。將兩數相除,要求不使用乘法、除法和 mod 運算符。 返回被除數 dividend 除以除數 divisor 得到的商。 整數除法的結果應當截去(truncate)其小數部分,例如:…

【eclipse轉idea的第一天】配置idea

為什么80%的碼農都做不了架構師?>>> 導入maven項目 設置maven(全局) 為了不然才轉idea的碼友們重復我犯過的錯,我這兒截圖步驟說明下: 這里是列表文本這里是列表文本idea的設置有兩種:全局,局部(我這么叫的…

node.js web框架_使用Node.js進行Web爬取的終極指南

node.js web框架So what’s web scraping anyway? It involves automating away the laborious task of collecting information from websites.那么,什么是網絡抓取? 它涉及自動化從網站收集信息的艱巨任務。 There are a lot of use cases for web s…

java局部內部類 final_Java的局部內部類以及final類型的參數和變量

Thinking In Java里面的說法(***正確的說法): 如果定義一個匿名內部類,并且希望它使用一個在其外部定的對象,那么編譯器會要求其參數引用是final 的。publicclassTester {publicstaticvoidmain(String[] args) {A a newA();C c newC();c.shou…

Vmware 安裝虛擬工具 (二)

打開虛擬機,以root超級用戶登陸,菜單欄選擇虛擬機,install安裝虛擬機 拷貝虛擬工具到 在根目錄下建立文件夾,并將工具拷貝到該文件夾,例如vmtool 打開終端,進入該目錄開始安裝 如圖,進入目錄解壓…

git與svn的區別 ?Git 與 SVN那個更好?

git與svn的區別 : http://www.360doc.com/content/12/1228/20/11220452_256857021.shtml 在版本控制系統的選型上,是選擇Git還是SVN? 對于開源項目來說這不算問題。使用Git極大地提高了開發效率、擴大了開源項目的參與度、 增強了版本控制系統…

強化學習簡介

by ADL通過ADL Reinforcement Learning is an aspect of Machine learning where an agent learns to behave in an environment, by performing certain actions and observing the rewards/results which it get from those actions.強化學習是機器學習的一個方面&#xff0…

leetcode1111. 有效括號的嵌套深度(棧)

給你一個「有效括號字符串」 seq,請你將其分成兩個不相交的有效括號字符串,A 和 B,并使這兩個字符串的深度最小。 不相交:每個 seq[i] 只能分給 A 和 B 二者中的一個,不能既屬于 A 也屬于 B 。 A 或 B 中的元素在原字…

利用Arcgis for javascript API繪制GeoJSON并同時彈出多個Popup

1.引言 由于Arcgis for javascript API不可以繪制Geojson,并且提供的Popup一般只可以彈出一個,在很多專題圖制作中,會遇到不少的麻煩。因此本文結合了兩個現有的Arcgis for javascript API擴充庫,對其進行改造達到繪制Geojson并同…

java 線程簡介_java多線程介紹

java多線程介紹多線程的基本實現進程指運行中的程序,每個進程都會分配一個內存空間,一個進程中存在多個線程,啟動一個JAVA虛擬機,就是打開個一個進程,一個進程有多個線程,當多個線程同時進行,就…

webpack入門——構建簡易版vue-cli

用vue-cli1/2搭建一個vue項目時,可以看到有很多關于webpack配置的文件。我們不需要知道那些繁瑣的配置文件有什么作用,只需在控制臺輸入npm run dev,項目自動啟動,我們就可以愉快的寫業務代碼了。 雖然vue-cli幫我們做好了一切&am…

leetcode43. 字符串相乘

給定兩個以字符串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字符串形式。 示例 1: 輸入: num1 “2”, num2 “3” 輸出: “6” 代碼 class Solution {public String multiply(String num1, String num2) {if(n…

作業二:個人博客作業內容:需求分析

作業二:個人博客作業內容:需求分析 怎樣與用戶有效溝通獲取用戶的真實需求?訪談,正式訪談系統分析員將提出一些事先準備好的具體問題;非正式訪談中,分析人員將提出一些用戶可以自由回答的開放性問題&#…