泛型实质上就是程序员自己定义好的安全类型,语法为
类名<T>
上面T代表一个类型的名称
简单的泛型例子
package cn.test;
//单个类型的泛型类
public class OverClass<T> {
private T over;
public T getOver(){
return over;
}
public void setOver(T over)
{
this.over=over;
}
public static void main(String[] args) {
//实例化一个Boolean对象
OverClass<Boolean> over1=new OverClass<Boolean>();
//实例化一个Float对象
OverClass<Float> over2=new OverClass<Float>();
over1.setOver(true);
over2.setOver(14.3f);
System.out.println(over1.getOver());
System.out.println(over2.getOver());
}
}
定义多个数据类型的泛型类
package cn.bytd;
//定义多个类型的泛型
public class MutiOverClass<T,U> {
private T v1;
private U v2;
public void set(T v1,U v2){
this.v1=v1;
this.v2=v2;
}
public T getT(){
return v1;
}
public U getU(){
return v2;
}
public static void main(String[] args) {
MutiOverClass<String,Integer> moc=new MutiOverClass<String, Integer>();
moc.set("hello world",30);
System.out.println("第一个值是:"+ moc.getT());
System.out.println("第一个值类型是:"+moc.getT().getClass());
System.out.println("第二个值是:"+ moc.getU());
System.out.println("第二个值类型是:"+moc.getU().getClass());
}
}
数组类型的泛型类
package cn.bytd;
//定义一个数组的的泛型类
public class ArrayClass<T> {
private T[] array; //定义泛型数组
public void setT(T[] array){
this.array=array;
}
public T[] getT(){
return this.array;
}
public static void main(String[] args) {
ArrayClass<String> a =new ArrayClass<String>();
String[] arrayS={"string A","String B","String C","String D","String E"};
a.setT(arrayS);
for (int i=0;i<a.getT().length;i++)
{
System.out.println(a.getT()[i]);
}
ArrayClass<Integer> b =new ArrayClass<Integer>();
}
}

集合类容器的范类
package cn.bytd;
import java.util.Map;
import java.util.HashMap;
//集合类泛型类
//使用K和V两个字符代表容器中的键值和键对应的具体值
public class SetOverClass<K,V> {
private Map<K,V> m=new HashMap<K, V>(); //定义一个集合 HashMap实例
public void set_SOC(K k,V v){
this.m.put(k, v);
}
public V get_V_by_K(K k)
{
return m.get(k);
}
public static void main(String[] args) {
SetOverClass<Integer,String> soc = new SetOverClass<Integer, String>();
soc.set_SOC(1,"this is 1");
soc.set_SOC(2,"this is 2");
soc.set_SOC(3,"this is 3");
soc.set_SOC(4,"this is 4");
soc.set_SOC(5,"this is 5");
soc.set_SOC(6,"this is 6");
soc.set_SOC(7,"this is 7");
soc.set_SOC(8,"this is 8");
soc.set_SOC(9,"this is 9");
//调用方法 进行测试
System.out.println("传入键值7 获得结果为:"+soc.get_V_by_K(7));
}
}


2987

被折叠的 条评论
为什么被折叠?



