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

Java基础Day-Seventeen

泛型及高阶应用

  • 所谓泛型,就是允许在定义类、接口、方法时使用类型形参(泛型),这个类型形参将在声明变量、创建对象、调用方法时动态地指定,进而让程序具备编译时检查能力

  • 泛型是JDK1.5提供的特性,最常见的泛型应用场景便是在使用集合时通过泛型指定集合内对象的类型,为程序代码提供了编译时纠错的能力

自定义泛型类

  • 自定义泛型类,需要在类名后增加"<标识符>",如下所示:

    public class SampleClass<T>{...}
    • <T>与<E>的区别

      • 标识符的字母本身并无强制要求,常见写法有两种:

      • <T>是Type单词的首字母,说明传入的是类型

      • <E>是Element元素的首字母,代表是集合中的元素

  • 泛型类的创建与使用

    package com.imooc.pt;
    ​
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    ​
    //随机选择List中的元素
    public class CollectionUtils<E> {
        private List<E> data=new ArrayList<>();
        public void add(E element){
            data.add(element);
        }
        public E randomSelect(){
            int idx=new Random().nextInt(data.size());//0~data.size-1,左闭右开
            E ret=data.get(idx);
            return ret;
        }
    ​
        public static void main(String[] args) {
            CollectionUtils<String> utils=new CollectionUtils<>();
            utils.add("张三");
            utils.add("李四");
            utils.add("王五");
            utils.add("赵六");
            utils.add("郑七");
            String name=utils.randomSelect();
            System.out.println(name);
            System.out.println(utils.randomSelect());
            System.out.println(utils.randomSelect());
            System.out.println(utils.randomSelect());
            System.out.println(utils.randomSelect());
        }
    }
    ​

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

相关文章:

  • STM32嵌入式闹钟系统设计与实现
  • 记录学习react的一些内容
  • Gurobi学术版+Anaconda安装步骤
  • C语言第九周课——经典算法
  • 【大数据技术基础 | 实验十】Hive实验:部署Hive
  • 软考:去中心化的部署有什么特点
  • 【算法一周目】双指针(1)
  • Android Auto 不再用于旧手机
  • HTML5:网页开发的新纪元
  • 埃隆·马斯克的 AI 初创公司 xAI 推出了 API
  • 链式结构二叉树
  • css 实现展开合并按钮
  • 【JavaScript】JavaScript开篇基础(5)
  • 每日一题|3258. 统计满足 K 约束的子字符串数量 I|滑动窗口
  • 手写JDK动态代理实现AOP
  • c# 开发web服务 webserver
  • MFC 重写了listControl类(类名为A),并把双击事件的处理函数定义在A中,主窗口如何接收表格是否被双击
  • sql速度优化多条合并为一条语句
  • 关于git使用的图文教程(包括基本使用,处理冲突问题等等)超详细
  • 调整TCP参数, 优化网络性能
  • 基于springboot的家装平台设计与实现
  • 【HCIP园区网综合拓扑实验】配置步骤与详解(已施工完毕)
  • 整合本地市场机会 同城小程序打造社区商圈
  • Uniapp去除顶部导航栏-小程序、H5、APP适用
  • 专业140+总分430+复旦大学875信号与系统考研经验原957电子信息通信考研,真题,大纲,参考书。
  • ssm基于BS的仓库在线管理系统的设计与实现+vue