java中的泛型
泛型实质上就是程序员自己定义好的安全类型,语法为
类名<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));}
}