Collection接口是List、Set、Queue接口的父接口
Collection接口定義了可用于操作List、Set和Queue的方法--增刪改查
List接口及其實(shí)現(xiàn)類--ArrayList
List是元素有序并且可以重復(fù)的集合,被稱為序列。
List可以精確的控制每個(gè)元素的插入位置,或刪除某個(gè)位置元素
List有add()插入方法和get()獲取方法
ArrayList--數(shù)組序列,是List的一個(gè)重要實(shí)現(xiàn)類
ArrayList底層是由數(shù)組實(shí)現(xiàn)的,這也是其名字的由來
List接口
List中的元素是有序的且可以重復(fù)
添加:ArrayList.add(對(duì)象),默認(rèn)添加在List的最后,可以在指定位置添加ArrayList.add(索引位置,對(duì)象),可以用get()方法取出來
ArrayList.addAll(Arrays.asList(數(shù)組對(duì)象))方法可以一次添加多個(gè)對(duì)象,Arrays.asList()就是將數(shù)組轉(zhuǎn)化為一個(gè)List對(duì)象
ArrayList.get(int index)一定要注意,a使用dd()或者是addAll()方法插入的元素一律會(huì)變成Object類型,那么使用get()方法取出時(shí)也將是Object類型的,這是接受取出的元素時(shí),要做相應(yīng)的類型強(qiáng)轉(zhuǎn)。
類型對(duì)象=(類型)ArrayList.get(索引位置);//對(duì)象存入集合都變成object類型,取出時(shí)需要進(jìn)行類型轉(zhuǎn)換
刪除:ArrayList.remove(對(duì)象或者對(duì)象在List中的索引位置)
修改:ArrayList.set(索引位置,修改內(nèi)容)
通過ArrayList.size()方法可以得到List長度
可以通過foreach(元素類型元素變量:遍歷對(duì)象名(即數(shù)組名))方法,get方法,迭代器iterator方法遍歷List
foreach方法中,元素類型固定為Object,因?yàn)榉诺郊现袝r(shí),元素的類型被忽略了
iterator方法中,用hasNext()方法來確定是否List還有元素,有則返回true。迭代器不存儲(chǔ)東西,依賴其他結(jié)構(gòu)存在
Java泛型
在開發(fā)中,可以創(chuàng)建一個(gè)泛型來規(guī)定對(duì)象的類型。在集合中,不能添加泛型規(guī)定類型意外的對(duì)象。
泛型中除了可以添加規(guī)定的類型還可以添加規(guī)定類型的子類型。
定義子類型的時(shí)候要在父類型中添加一個(gè)無參的構(gòu)造方法,否則出錯(cuò),因?yàn)檎{(diào)用子類型的構(gòu)造方法時(shí),系統(tǒng)會(huì)默認(rèn)調(diào)用父類的無參構(gòu)造方法(super();)。
泛型集合中不能使用基本數(shù)據(jù)類型,要使用基本數(shù)據(jù)類型的包裝類,即Integer,Long,Boolean?;蛘邽橐妙愋蚅ist
Set接口
Collection接口-Set接口-實(shí)現(xiàn)類HashSet
一、Set是元素【無序且不可重復(fù)】的集合,被稱作集
二、HashSet——哈希集,是Set的重要實(shí)現(xiàn)類
注意:與List比較
·Set的遍歷只能用foreach和iterator,不能用get()方法(因?yàn)槭菬o序表),同理,也沒有set()方法
·Set中重復(fù)添加一個(gè)對(duì)象,只會(huì)保留一個(gè),并且保留的是第一次的添加的那一個(gè)。
Set中可以添加空對(duì)象,但是一般開發(fā)中不這么用。
List和Set都可以用contains()方法判斷是否包含某元素,
contains()方法的實(shí)現(xiàn)原理:當(dāng)調(diào)用List中contains()方法時(shí),相當(dāng)于遍歷list中的每一個(gè)元素,然后再調(diào)用每個(gè)元素的equals()方法,去跟contains()中的對(duì)象比較,如果有一個(gè)元素的equals()方法返回一個(gè)true值,那么contains()方法就返回一個(gè)true值;否則返回一個(gè)false值。所以contains()方法的本意是是否存在某個(gè)對(duì)象的引用,如果判斷是否存在某個(gè)內(nèi)容,就要重寫equals()方法。
其中HashSet Contains()方法是先調(diào)用hashCode()方法,在調(diào)用equals()方法
以上就是長沙中公優(yōu)就業(yè)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java中Collection接口使用方法”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。