泛型

泛型类的声明
泛型不能是基本数据类型,必须是个类
例://这样会报错ArryList list<int>=new ArryList<int>();

class MyCollection<E> {// E:表示泛型;
    Object[] objs = new Object[5]; 
   public E get(int index) {// E:表示泛型;
        return (E) objs[index];
    }
    public void set(E e, int index) {// E:表示泛型;
        objs[index] = e;
    }
}

泛型E像一个占位符一样表示“未知的某个数据类型”,我们在真正调用的时候传入这个“数据类型”。
泛型类的应用

public class TestGenerics {
    public static void main(String[] args) {
        // 这里的”String”就是实际传入的数据类型;
        MyCollection<String> mc = new MyCollection<String>();
        mc.set("aaa", 0);
        mc.set("bbb", 1);
        String str = mc.get(1);
        //加了泛型,直接返回String类型,不用强制转换;
        System.out.println(str);
    }
}

泛型类的在集合中的使用

public class Test {
    public static void main(String[] args) {
    // 以下代码中List、Set、Map、Iterator都是与容器相关的接口;
        List<String> list = new ArrayList<String>();
        Set<Man> mans = new HashSet<Man>();
        Map<Integer, Man> maps = new HashMap<Integer, Man>();
        Iterator<Man> iterator = mans.iterator();
    }
}

如果我们没有添加泛型

public class Test {
    public static void main(String[] args) {
        ArryList list = new ArrayList<String>();
        //我们没有定义泛型,在传的时候可以随便传,这样我们的数据就不太安全,比如我们要传入成绩,必须是整数,但是我们在没有定义泛型就可以随便传
       list.add(78);
        list.add(78);
         list.add("123");
         for(Object sorce:list){
         //我们添加了字符串,在强转时不能强转报错
         int Stusorce=(Interge)sorce;
    }
}

当我们添加了泛型后

public class Test {
    public static void main(String[] args) {
        ArryList list<Interge>= new ArrayList<Interge>();
       list.add(78);
        list.add(78);
         //list.add("123");编译时就会报错
         for(Interge sorce:list){
         //不用强转了
         int Stusorce=sorce;
         System.out.println(Stusorce);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值