泛型,即「引數化型別」。一提到引數,最熟悉的就是定義方法時有形參,然後呼叫此方法時傳遞實參。那麼引數化型別怎麼理解呢?顧名思義,就是將型別由原來的具體的型別引數化,類似於方法中的變數引數,此時型別也定義成引數形式(可以稱之為型別形參),然後在使用/呼叫時傳入具體的型別(型別實參)。為什麼要是用泛型呢??泛型一半是用在集合上,比如現在吧乙個字串型別的值放入到集合裡面,這個時候,這個值放入到集合之後,失去本身的型別,只能說是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可以使用任意的字母代替。表示定義了一種不確定的資料型別,這種不確定的資料型別必須在使用這個類 比如建立物件 的時候才能確定下來。如果希望縮小泛型的範圍,延後泛型的確定時間,讓泛型在呼叫方法的時候確定,那麼我們可以使用泛型...