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));
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大龄奋斗程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值