泛型方法和泛型類的使用(學習筆記)

2021-09-01 17:39:36 字數 1642 閱讀 6358

泛型,即「引數化型別」。一提到引數,最熟悉的就是定義方法時有形參,然後呼叫此方法時傳遞實參。那麼引數化型別怎麼理解呢?顧名思義,就是將型別由原來的具體的型別引數化,類似於方法中的變數引數,此時型別也定義成引數形式(可以稱之為型別形參),然後在使用/呼叫時傳入具體的型別(型別實參)。為什麼要是用泛型呢??泛型一半是用在集合上,比如現在吧乙個字串型別的值放入到集合裡面,這個時候,這個值放入到集合之後,失去本身的型別,只能說是object型別,這個時候,比如想要對這個值進行型別轉換,很容易出現轉換錯誤,怎麼解決這個問題呢,可以使用泛型來解決。

*常用集合 list set map

*泛型語法集合名比如list

*在泛型裡面寫是乙個物件,string,不能寫基本的資料型別,比如int

**寫基本的資料型別對應包裝類

byte --byte

short--short

int--integer

long--long

float--float

double--double

char--character

boolean--boolean

*list上使用泛型

list的三種實現arraylist linkedlist vector

**如下:

@test

public void testdemo()

system.out.println("***************=");

//for迴圈

for (int i = 0; i < list.size(); i++)

system.out.println("***************=");

//迭代器遍歷陣列

iteratoritlist = list.iterator();

while(itlist.hasnext())

}

在set上使用泛型

@test

public void setdemo()

system.out.println("##############");

//迭代器遍歷陣列

iteratorsetit = hashset.iterator();

while(setit.hasnext())

}

在map上使用泛型

@test

public void mapdemo()

// 林外一種方法得到key和value的值

system.out.println("*****====");

// 得到key和value的關係

set> sets1 = map.entryset();

// 遍歷sets1

for (entryentry : sets1)

}

*使用大寫字母表示t:這個t表示任意的型別

*寫在 返回值之前也就是void之前

*表示定義了乙個型別,這個型別是t

在下面就可以使用這個型別t了

public static void swap1(t arr,int a,int b)

泛型 泛型類 泛型方法 泛型擦除

1 是什麼?一種允許我們在不確定引數型別時候使用的型別。例如我不知道a方法應該會傳string還是int,我就用個泛型先佔坑。2 為什麼要用泛型?泛型可以在編譯期自動確定具體型別,檢查型別是否匹配,可以提高 的重用率,減少冗餘編碼。3 泛型與object的區別?像上面說的我不知道方法a的引數型別,其...

泛型類泛型方法

泛型定義 操作的資料型別被指定為乙個引數,將原來的具體資料資料型別引數化。泛型類 1.泛型引數必須是引用資料型別 2.不能 new t 例如可以 this.element t new object 來強制轉換 3.不能 new t 4建立例項物件時忘寫 t 預設為object 例如 myarrayl...

泛型類,泛型方法,泛型介面

泛型,就是一種不確定的資料型別。如果在類後面加上 這個類就變成了泛型類。這個 t可以使用任意的字母代替。表示定義了一種不確定的資料型別,這種不確定的資料型別必須在使用這個類 比如建立物件 的時候才能確定下來。如果希望縮小泛型的範圍,延後泛型的確定時間,讓泛型在呼叫方法的時候確定,那麼我們可以使用泛型...