1,使用泛型
我们在使用集合的时候,都会用到泛型
比如:List<String>,Map<String,Integer>,Set<String>等
2,自定义泛型
<span style="white-space:pre"> </span>//自定义泛型
public <T> void a(T t){
//......
}
//带返回值的
public <T> T b(T t){
return null;
}
//定义多个泛型
public <T,M,N> void c(T t,M m,N n){
//......
}
P.s:为了不每次在方法上使用都声明一次泛型,可以直接在类上定义泛型
public class FanXing<T,M,N> {
//自定义泛型
public void a(T t){
//......
}
//带返回值的
public T b(T t){
return null;
}
//定义多个泛型
public void c(T t,M m,N n){
//......
}
}
P.s:在类上声明定义的泛型,不能作用在静态方法上,否则会报错。要在静态方法上单独声明。
public static <T> void d(T t){
//......
}
例子:
<span style="white-space:pre"> </span>//使用数组实现一个数组的制定元素的交换
public <T> void wrap(T arr[],int index1,int index2){
T temp = arr[index1];
arr[index1] = arr[index2];
arr[index2] = temp;
}
//实现任意数组的倒置
public <T> void reverse(T arr[]){
int start = 0;
int end = arr.length;
while(true){
if(start >= end){
break;
}
T temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
}