泛型的使用

时间:2024-4-16    作者:老大夫    分类: JAVA


1.泛型的概念

泛型,字面意思 不确定的类型。 广泛的类型。

就是给集合或者类方法指定,只能添加什么类型数据进来。

主要用于集合和比较器上

所谓泛型,就是允许在定义类、接口时通过一个标识 表示类中某个属性的类型 或者是某个方法的 返回值或参数的类型 。这个类型参数将在使用时(例如,继承或实现这个接口、创建对象或调用方法时)》确定(即传入实际的类型参数,也称为类型实参)

2.使用泛型之前可能存在的问题

  1. 类型不安全,因为默认object类型,各种类型都会添加进去
  2. 需要强制转换的可能会因为类型不一致报错

3.在集合中使用泛型

/*
使用泛型之前
 */
public class FanXingTest {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add(78);
        list.add(67);
        list.add(48);
        list.add(59);
        //类型不安全,因为默认object类型,各种类型都会添加进去
//        list.add("AA");
        Iterator iterator = list.iterator();
        while (iterator.hasNext()){
            //2.
            Integer next = (Integer) iterator.next();
            System.out.println(next);
        }
    }
}
/*
使用泛型之后
 */
class FanXingAfterTest{
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        list.add(78);
        list.add(67);
        list.add(48);
        list.add(59);
        list.add(44);
        //编译报错,避免报错
//        list.add("AAA");
        Iterator<Integer> iterator = list.iterator();
        while (iterator.hasNext()){
            //因为都是Integer类型避免了强制转换这一步
            Integer next = (Integer) iterator.next();
            System.out.println(next);
        }

    }
}
/*
泛型在Map中的使用
 */
class MapFanXingTest{
    public static void main(String[] args) {
//        HashMap<String, Integer> map = new HashMap<String, Integer>();

        //jdk7.0新特性
        HashMap<String, Integer> map = new HashMap();//类型的推断写法
        map.put("Tom",87);
        map.put("Jerry",65);
        map.put("Rose",95);

        Set<Map.Entry<String, Integer>> entries = map.entrySet();
        Iterator<Map.Entry<String, Integer>> iterator = entries.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }
}

4.使用说明

集合框架在声明接口和其实现类时,使用了泛型(jdk5.0),在实例化集合对象时如果没有使用泛型,则认为操作的是object类型的数据。如果使用了泛型,则需要指明泛型的具体类型。一旦指明了泛型的具体类型,则在集合的相关的方法中,凡是使用类的泛型都替换成声明的泛型类型。

版权所有:伸手党盘
文章标题:泛型的使用
文章链接:https://ssdpan.cn/?post=387
本站文章来源于网络搜集和原创,仅供学习使用,未经授权请勿用于任何商业用途,如有侵权及时联系删除

推荐阅读:


扫描二维码,在手机上阅读