电竞比分网-中国电竞赛事及体育赛事平台

分享

Java學(xué)習(xí)路線分享如何正確理解Java的泛型類型?

 好程序員IT 2019-09-06

  還不能正確理解Java的泛型類型到底是個(gè)什么?接下來好程序員就為大家分析一下。

泛型是將數(shù)據(jù)類型參數(shù)化。(將數(shù)據(jù)類型作為參數(shù)傳遞)。語法:<數(shù)據(jù)類型>

      1.1:泛型集合:將數(shù)據(jù)類型作為集合的參數(shù),集合中每個(gè)元素必須都是這個(gè)泛型的數(shù)據(jù)類型。

1.1.1:泛型集合優(yōu)點(diǎn):減少頻繁的裝箱和拆箱,以及數(shù)據(jù)類型的判斷 。

1.1.2:泛型集合的特點(diǎn):一個(gè)集合只存一種類型的數(shù)據(jù)。

1.1.3:語法:集合類型<數(shù)據(jù)類型> 集合名=new 集合類型<[數(shù)據(jù)類型]>();

eg:public static void main(String[] args) {

//創(chuàng)建集合對(duì)象

List<Cat> alist2=new ArrayList<>();

//向集合中添加元素

alist2.add(new Cat("胖虎", 2));

alist2.add(new Cat("大熊", 1));

alist2.add(new Cat("靜香", 3));

for (Cat a : alist2) {

System.out.println(a.nickName+","+a.age);

}

  }

1.2: 泛型迭代器將數(shù)據(jù)類型作為迭代器的參數(shù),迭代出來的每個(gè)元素是泛型的數(shù)據(jù)類型。

注意:如果是用迭代器遍歷泛型集合,那么迭代器一定要用泛型迭代器。

1.2.1:泛型迭代器的作用:減少頻繁的類型轉(zhuǎn)換的問題。

1.2.2:語法:Iterator<數(shù)據(jù)類型> 迭代器對(duì)象名=集合名.iterator();

eg:public static void main(String[] args) {

//創(chuàng)建集合對(duì)象

List<Cat> alist2=new ArrayList<>();

//向集合中添加元素

alist2.add(new Cat("胖虎", 2));

alist2.add(new Cat("大熊", 1));

alist2.add(new Cat("靜香", 3));

/*用迭代器遍歷集合*/

//獲得集合的迭代器

Iterator<Cat> it1=alist2.iterator();

//先判斷迭代器后面是否有元素可迭代

while (it1.hasNext()) {

//迭代元素

Cat ob1=it1.next();

System.out.println(ob1.nickName+","+ob1.age);

}

 }

1.3:泛型類(擴(kuò)展):將泛型作類的參數(shù)來用。

eg:/**

 * 泛型類,<T>表示泛型,T是數(shù)據(jù)類型占位符,在類中T當(dāng)作一種數(shù)據(jù)類型來用

 * @author sx

 * @version 1.0 2019827

 * @param <T>

 */

public class Student<T> {

/**

 * 姓名屬性

 */

public String sname;

/**

 * 屬性

 */

public T  ss;

}

public static void main(String[] args) {

//創(chuàng)建泛型類的對(duì)象

Student<Integer> stu1=new Student<>();

stu1.sname="張三";

stu1.ss=11;

//創(chuàng)建泛型類的對(duì)象

Student<String> stu2=new Student<>();

stu2.sname="李四";

stu2.ss="哈哈";

}

1.4:泛型方法:將數(shù)據(jù)類型作為方法的參數(shù)的類型。

eg:/**

 * 泛型方法

 */

public <T> void show(T aa) {

System.out.println("泛型參數(shù)為:"+aa);

}

public static void main(String[] args) {

//創(chuàng)建類的對(duì)象

Hello h1=new Hello();

//用對(duì)象調(diào)用泛型方法

h1.show("我是千鋒人");

h1.show(11);

h1.show('');

}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多