当前位置: 首页 > article >正文

java基础:java泛型相关内容

1、说一说泛型的用处主要是什么??编译时??主要优点

泛型的引入背景??
集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把元素类型设计为Object,JDK1.5之后使用泛型来解决。因为这个时候除了元素的类型不确定,其他的部分是确定的,例如关于这个元素如何保存,如何管理等是确定的,因此此时把元素的类型设计成一个参数,这个类型参数叫做泛型。Collection,List,ArrayList 这个就是类型参数,即泛型。

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

主要作用和优点:

  • 解决元素存储的安全性问题;
  • 解决获取数据元素时,需要类型强制转换的问题
  • 编译时,就会进行类型检查,保证数据的安全;
  • 泛型是一个类型,不能用基本数据类型,必须用包装类

在这里插入图片描述

@Test
    public void test2(){
       ArrayList<Integer> list =  new ArrayList<Integer>();

        list.add(78);
        list.add(87);
        list.add(99);
        list.add(65);
        //编译时,就会进行类型检查,保证数据的安全
//        list.add("Tom");

        //方式一:
//        for(Integer score : list){
//            //避免了强转操作
//            int stuScore = score;
//
//            System.out.println(stuScore);
//
//        }
        //方式二:
        Iterator<Integer> iterator = list.iterator();
        while(iterator.hasNext()){
            int stuScore = iterator.next();
            System.out.println(stuScore);
        }

    }
  1. 集合中使用泛型总结:
  • ① 集合接口或集合类在jdk5.0时都修改为带泛型的结构。
  • ② 在实例化集合类时,可以指明具体的泛型类型
  • ③ 指明完以后,在集合类或接口中凡是定义类或接口时,内部结构(比如:方法、构造器、属性等)使用到类的泛型的位置,都指定为实例化的泛型类型。
  • 比如:add(E e) —>实例化以后:add(Integer e)
  • ④ 注意点:泛型的类型必须是类,不能是基本数据类型。需要用到基本数据类型的位置,拿包装类替换
  • ⑤ 如果实例化时,没指明泛型的类型。默认类型为java.lang.Object类型。

http://www.kler.cn/a/6012.html

相关文章:

  • 【Java项目】基于SpringBoot的【校园交友系统】
  • 【网络协议】开放式最短路径优先协议OSPF详解(四)
  • 2025新春烟花代码(二)HTML5实现孔明灯和烟花效果
  • JWT与Token
  • LangChain速成课程_构建基于OpenAI_LLM的应用
  • Flutter Web 中文字体显示异常问题
  • 代码管理平台Codeup测评
  • 蓝桥杯第15天(Python版)(数论)
  • 【Ruby学习笔记】1.Ruby的简介、环境、Linux安装及Windows安装
  • 高级Java工程师面试题经典面试题1220道(附答案)
  • Python 自建项目上传到 PyPI 之后通过 pip 可安装
  • 自己动手写CPU——第一篇
  • ChatGPT AI国内免魔法使用
  • 命令行上的数据科学第二版 二、开始
  • VUE从0开始,一个小时就学完VUE
  • Linux系统之diff命令的基本使用
  • 数据结构-堆-堆排序-TopK
  • 05_Python学习基础
  • 蓝桥杯刷题第二十五天
  • 玩转肺癌目标检测数据集Lung-PET-CT-Dx ——②预览数据集,绘制锚框
  • FastDFS单节点搭建
  • Linux安装JDK教程(图文详解,一步搞定)
  • https
  • 对象的构造及初始化
  • 【MATLAB点云处理】计算FPFH并可视化
  • process.spider_loader.list()为空列表是什么原因导致的?KeyError: ‘Spider not found