Java集合遍歷實(shí)現(xiàn)方法及泛型通配
集合定義
集合,集合是java中提供的一種容器,可以用來(lái)存儲(chǔ)多個(gè)數(shù)據(jù)。
特點(diǎn):數(shù)組的長(zhǎng)度是固定的。集合的長(zhǎng)度是可變的。集合中存儲(chǔ)的元素必須是引用類型數(shù)據(jù)‘
普通for遍歷:
//案例一
ArrayList<Person> arr=new ArrayList<Person>();
arr.add(new Person("張三",19));
arr.add(new Person("小紅帽",20));
arr.add(new Person("小紅帽",23));
for(int i=0;i<arr.size();i++){
System.out.println(arr.get(i));
}
增強(qiáng)for循環(huán)遍歷:
案例二
Collection<Integer> arr=new ArrayList<Integer>();
arr.add(789);
arr.add(456);
arr.add(123);
//增強(qiáng)for循環(huán)
/*for(元素的數(shù)據(jù)類型 變量 : Collection集合or數(shù)組){
}*/
for(Integer i:arr){
System.out.println(i);
}
迭代器遍歷:
//案例三
//1,創(chuàng)建集合對(duì)象。
Collection<String> coll = new ArrayList<String>();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4");
//2.獲取容器的迭代器對(duì)象。通過(guò)iterator方法。
Iterator it = coll.iterator();
//3,使用具體的迭代器對(duì)象獲取集合中的元素。參閱迭代器的方法
while(it.hasNext()){
System.out.println(it.next());
}
Collection接口的基本方法
Collection接口是集合中的頂層接口,那么它中定義的所有功能子類都可以使用

創(chuàng)建集合的格式:
方式1:Collection<元素類型> 變量名 = new ArrayList<元素類型>();
方式2:Collection 變量名 = new ArrayList();
集合元素的向下轉(zhuǎn)型
Collection coll = new ArrayList();
coll.add("abc");
coll.add("aabbcc");
coll.add(1);
Iterator it = coll.iterator();
while (it.hasNext()) {
//由于元素被存放進(jìn)集合后全部被提升為Object類型
//當(dāng)需要使用子類對(duì)象特有方法時(shí),需要向下轉(zhuǎn)型
String str = (String) it.next();
System.out.println(str.length());
}
泛型和通配符
類定義格式:修飾符 class 類名<代表泛型的變量> { }
接口定義格式:修飾符 interface接口名<代表泛型的變量> { }
限定泛型的下限:
//? extends Person 限定泛型的上限
//? super Person 限定泛型的下限
public static void get(Collection<? extends Person> c){
Iterator<?> it=c.iterator();
while(it.hasNext()){
//向下轉(zhuǎn)型
Object obj=it.next();
Person p=(Person)obj;
System.out.println(p.getName());
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳談Java中instanceof和isInstance的區(qū)別
下面小編就為大家?guī)?lái)一篇詳談Java中instanceof和isInstance的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
Spring?Boot?+?Canal?實(shí)現(xiàn)數(shù)據(jù)庫(kù)實(shí)時(shí)監(jiān)控
這篇文章主要介紹了Spring?Boot?+?Canal實(shí)現(xiàn)數(shù)據(jù)庫(kù)實(shí)時(shí)監(jiān)控,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08
java統(tǒng)計(jì)文件中每個(gè)字符出現(xiàn)的個(gè)數(shù)
這篇文章主要為大家詳細(xì)介紹了java統(tǒng)計(jì)文件中每個(gè)字符出現(xiàn)的個(gè)數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03
Java窗體動(dòng)態(tài)加載磁盤(pán)文件的實(shí)現(xiàn)方法
這篇文章主要介紹了Java窗體動(dòng)態(tài)加載磁盤(pán)文件的實(shí)現(xiàn)方法,需要的朋友可以參考下2014-03-03
關(guān)于Java大整數(shù)運(yùn)算之BigInteger類
這篇文章主要介紹了關(guān)于Java大整數(shù)運(yùn)算之BigInteger類,BigInteger提供高精度整型數(shù)據(jù)類型及相關(guān)操作,所有操作中,都以二進(jìn)制補(bǔ)碼形式表示,需要的朋友可以參考下2023-05-05
Spring Security靈活的PasswordEncoder加密方式解析
這篇文章主要介紹了Spring Security靈活的PasswordEncoder加密方式解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
Java?8?Stream?處理數(shù)據(jù)方法匯總
這篇文章主要介紹了Java?8?Stream處理數(shù)據(jù),Stream是Java?8?新引入的一個(gè)包它讓我們能用聲明式的方式處理數(shù)據(jù),Stream流式處理相較于傳統(tǒng)方法簡(jiǎn)潔高效,也便于進(jìn)行并發(fā)編程,更多相關(guān)內(nèi)容需要的小伙伴可以參考下面文章內(nèi)容2022-06-06

