Java集合遍歷實(shí)現(xiàn)方法及泛型通配
集合定義
集合,集合是java中提供的一種容器,可以用來(lái)存儲(chǔ)多個(gè)數(shù)據(jù)。
特點(diǎn):數(shù)組的長(zhǎng)度是固定的。集合的長(zhǎng)度是可變的。集合中存儲(chǔ)的元素必須是引用類(lèi)型數(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ù)類(lèi)型 變量 : 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接口是集合中的頂層接口,那么它中定義的所有功能子類(lèi)都可以使用
創(chuàng)建集合的格式:
方式1:Collection<元素類(lèi)型> 變量名 = new ArrayList<元素類(lèi)型>();
方式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類(lèi)型//當(dāng)需要使用子類(lèi)對(duì)象特有方法時(shí),需要向下轉(zhuǎn)型 String str = (String) it.next(); System.out.println(str.length());}
泛型和通配符
類(lèi)定義格式:修飾符 class 類(lèi)名<代表泛型的變量> { }
接口定義格式:修飾符 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í)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. HTML5 Canvas繪制圖形從入門(mén)到精通2. HTTP協(xié)議常用的請(qǐng)求頭和響應(yīng)頭響應(yīng)詳解說(shuō)明(學(xué)習(xí))3. 不要在HTML中濫用div4. XML入門(mén)的常見(jiàn)問(wèn)題(三)5. HTML DOM setInterval和clearInterval方法案例詳解6. HTML5實(shí)戰(zhàn)與剖析之觸摸事件(touchstart、touchmove和touchend)7. CSS清除浮動(dòng)方法匯總8. 本站用的rss輸出9. Vue如何使用ElementUI對(duì)表單元素進(jìn)行自定義校驗(yàn)及踩坑10. XML在語(yǔ)音合成中的應(yīng)用
