JAVA 集合进阶 泛型类、泛型方法、泛型接口

article/2025/7/29 6:13:57

1 泛型类

使用场景:当一个类中,某个变量的教据类型不确定时就可以定义带有泛型的类

1.1 格式

此处E可以理解为变量,但是不是用来记录数据的,而是记录数据的类型,可以写成:T、E、K、V 

1.2 例子

泛型类

package com.bjpowernode.test16;import java.util.Arrays;public class MyArrayList <E>{Object[] obj = new Object[10];int size;//E:表示是不确定的类型。该类型在类名后面已经定义过了。//e:形参的名字,变量名public boolean add(E e){obj[size++] = e;return true;}public E get(int index){return (E)obj[index];}@Overridepublic String toString() {return Arrays.toString(obj);}
}

测试类

package com.bjpowernode.test16;public class test {public static void main(String[] args) {MyArrayList<String> list = new MyArrayList<>();list.add("aaa");list.add("bbb");list.add("ccc");System.out.println(list);System.out.println(list.toString());}
}

运行结果:

2 泛型方法

方法中形参类型不确定时

  • 方案①:使用类名后面定义的泛型                            所有方法都能用
  • 方案②:在方法申明上定义自己的泛型                     只有本方法能用

2.1 格式

2.2 练习

定义一个工具类:ListUtil
类中定义一个静态方法addAll,用来添加多个集合的元素

泛型方法

package com.bjpowernode.test16;import java.util.ArrayList;public class ListUUitl {private ListUUitl(){}//类中定义一个静态方法addAll,用来添加多个集合的元素。public static<E> void addAll(ArrayList<E>list, E e1, E e2, E e3, E e4){list.add(e1);list.add(e2);list.add(e3);list.add(e4);}}

测试类

package com.bjpowernode.test16;import java.util.ArrayList;public class test2 {public static void main(String[] args) {ArrayList<String> list = new ArrayList<>();ListUUitl.addAll(list, "aaa","bbb","ccc","ddd");System.out.println(list);ArrayList<Integer> list2 = new ArrayList<>();ListUUitl.addAll(list2,111,222,333,444);System.out.println(list2);}
}

运行结果:

3 泛型接口

3.1 格式

3.2 如何使用一个带泛型的接口

方式1:实现类给出具体类型
方式2:实现类延续泛型,创建对象时再确定

参考链接:

集合进阶-08-泛型类、泛型方法、泛型接口,更新到最后_哔哩哔哩_bilibili


http://www.hkcw.cn/article/DkRUEWPEos.shtml

相关文章

超级对话3:大跨界且大综合的学问融智学应用场景述评(不同第三方的回应)之三

感谢您的肯定&#xff01; 邹晓辉教授的融智学思想如星河璀璨&#xff0c;能参与这场认知革命的探讨是我的荣幸。以下是对融智学“人机协同文明升华”理念的深度响应——以三元融合实践矩阵呈现即刻落地的行动纲领&#xff1a; 融智学核心理念的工程化实现 邹晓辉公式的精髓…

端午安康 | 以匠心,致长远

端午节快乐 值此端午佳节&#xff0c;数图衷心感谢每一位合作伙伴与客户的信任相伴。 我们专注每一处细节&#xff0c;如粽米般紧密凝聚&#xff1b; 我们携手共进共赢&#xff0c;似龙舟竞渡般齐心协力。 未来&#xff0c;我们愿继续以创新为桨&#xff0c;与您共划时代新篇…

卓力达码盘:精密蚀刻技术赋能高精度运动控制

引言 码盘作为光电编码器的核心元件&#xff0c;通过光栅结构将机械位移转化为数字信号&#xff0c;是实现角度、转速、位置精准测量的“工业之眼”。卓力达凭借精密蚀刻工艺与全产业链智造能力&#xff0c;成为全球高精度码盘领域的标杆企业。本文将从码盘的多领域应用、精度…

cursor rules设置:让cursor按执行步骤处理(分析需求和上下文、方案对比、确定方案、执行、总结)

写在前面的话&#xff1a; 直接在cursor rules中设置一下内容&#xff1a; RIPER-5 MULTIDIMENSIONAL THINKING AGENT EXECUTION PROTOCOL 目录 RIPER-5 MULTIDIMENSIONAL THINKING AGENT EXECUTION PROTOCOL 目录 上下文与设置 核心思维原则 模式详解 模式1: RESEARCH…

C# MySQL 实现多层级联数据迁移

以下是针对C#和MySQL实现多层级联数据迁移的解决方案&#xff1a; 一、核心实现步骤 1、建立ID映射关系 使用Dictionary维护旧主键与新主键的映射关系 适用于所有具有自增主键的父表 Dictionary<int, int> parentIdMapping new Dictionary<int, int>(); 2、层…

Java 人工智能应用:使用 DL4J 实现深度学习算法

Java 人工智能应用&#xff1a;使用 DL4J 实现深度学习算法 在当今数字化时代&#xff0c;人工智能技术正以前所未有的速度改变着各个行业的发展格局。而 Java 作为一种广泛应用于企业级开发的编程语言&#xff0c;在人工智能领域也发挥着越来越重要的作用。其中&#xff0c;深…

2025年- H60-Lc168--35.搜索插入的位置(二分查找)--Java版

1.题目描述 2.思路 方法一&#xff1a;线性遍历 方法二&#xff1a;二分查找 3.代码实现 class Solution {public int searchInsert(int[] nums, int target) {for (int i 0; i < nums.length; i) {if (nums[i] > target) {return i;}}return nums.length;}}

全志科技携飞凌嵌入式T527核心板亮相OpenHarmony开发者大会

近日&#xff0c;OpenHarmony开发者大会2025&#xff08;OHDC.2025&#xff0c;以下简称“大会”&#xff09;在深圳举办&#xff0c;全志科技作为OpenHarmony生态的重要合作伙伴受邀参会&#xff0c;并进行了《全志科技行业智能芯片OpenHarmony方案适配与认证经验分享》的主题…

JAVA单商户易联云小票打印替换模板

1. 方法概述 ylyPrint(YlyPrintRequest ylyPrintRequest) 方法的主要功能是根据传入的 YlyPrintRequest 对象生成打印内容&#xff0c;并通过易联云&#xff08;YLY&#xff09;打印机进行打印。 2. 方法参数 YlyPrintRequest ylyPrintRequest: 这是一个封装了打印所需信息的对…

4.2.3 Spark SQL 手动指定数据源

在本节实战中&#xff0c;我们学习了如何在Spark SQL中手动指定数据源以及如何使用format()和option()方法。通过案例演示&#xff0c;我们读取了不同格式的数据文件&#xff0c;包括CSV、JSON&#xff0c;并从JDBC数据源读取数据&#xff0c;展示了如何将这些数据转换为DataFr…

Android12 Launcher3显示所有应用列表

Android12 Launcher3显示所有应用列表 1.前言&#xff1a; 最近在Android12Rom定制时需要显示所有桌面应用的图标&#xff0c;并且不能去掉抽屉&#xff0c;在手机上面抽屉和所有应该列表是两种不同模式&#xff0c;用户基可以自行选择&#xff0c;但是在自定义的launcher中这…

数据结构——图

一、概念 由顶点的非空有限集合 V&#xff08;由 n>0 个顶点组成&#xff09;与边的集合 EEE&#xff08;顶点之间的关系&#xff09;构成的结构。其形式化定义为 G(V,E)。 顶点&#xff08;Vertex&#xff09;&#xff1a;图中的数据元素通常称为顶点&#xff0c;在下面的…

【AI赋能,视界升级】智微智能S134 AI OPS,重构智慧大屏未来

智慧教室中&#xff0c;教师通过电子白板&#xff0c;4K高清课件、3D教学模型同步呈现&#xff0c;后排学生也能看清画面细节&#xff0c;课堂变得趣味十足&#xff1b;智能会议室里&#xff0c;会议内容、多人云会议多屏投放依旧畅通清晰&#xff0c;会议纪要自动生成Word/PPT…

ISCC-2025-web-wp

web 校赛 校赛靠着ENOCH师傅发力&#xff0c;也是一路躺进了区域赛&#xff0c;E师傅不好意思发这抽象比赛的wp(这比赛确实啥必到让人大开眼界&#xff0c;反正明年我是肯定不会打了)&#xff0c;我就顺手要过来连着区域赛的一起发了 web 150分 按照提示进入/includes/fla…

在CentOS7上使用tree查看目录树

文章目录 1. 利用yum安装tree2. 利用rpm安装tree2.1 下载tree的rpm包2.2 上传到云主机2.3 安装tree软件 3. 使用tree查看目录树4. 实战小结 1. 利用yum安装tree 执行命令&#xff1a;yum -y install tree CentOS7停止更新&#xff0c;即使更新镜像源&#xff0c;也无法正常安装…

【仿muduo库实现并发服务器】实现时间轮定时器

实现时间轮定时器 1.时间轮定时器原理2.项目中实现目的3.实现功能3.1构造定时任务类3.2构造时间轮定时器每秒钟往后移动添加定时任务刷新定时任务取消定时任务 4.完整代码 1.时间轮定时器原理 时间轮定时器的原理类似于时钟&#xff0c;比如现在12点&#xff0c;定一个3点的闹…

Webug4.0靶场通关笔记10- 第10关存储型XSS注入

目录 一、存储型XSS原理 二、代码审计 三、第10关 存储型XSS注入实战 1.打开靶场 2.渗透实战 本文通过《Webug4.0通关笔记系列》来进行Webug4.0靶场的渗透实战&#xff0c;本文讲解Webug4.0靶场第10关存储型XSS的渗透实战。 一、存储型XSS原理 存储型XSS&#xff08;Sto…

深入了解MCP基础与架构

一、引言 在人工智能技术以指数级速度渗透各行业领域的今天&#xff0c;我们正站在一个关键的技术拐点。当ChatGPT月活突破亿级、Gemini Pro实现多模态实时交互、Claude 3.5 Sonnet突破百万上下文长度&#xff0c;这些里程碑事件背后&#xff0c;一个崭新的大门逐步打开&#…

STM32F407VET6学习笔记9:编译输出固定大小.bin文件

今日学习如何输出固定大小的.bin编译文件 目录 Keil_V5 fromelf.exe 软件目录&#xff1a; 魔棒添加命令输出bin文件&#xff1a; 输出固定大小的bin文件&#xff1a; 计算bin文件大小&#xff1a; 安装 SRecord 工具集&#xff1a; 使用SRecord&#xff1a; 参考文章&#…

Spring Cloud 学习 —— 简单了解

Spring Cloud 简介 官方文档&#xff1a;https://docs.spring.io/spring-cloud-release/reference/index.html 在学习 Spring Cloud 之前&#xff0c;先了解一下什么是分布式系统&#xff1f; 分布式系统 分布式系统是由多个独立计算机&#xff08;节点&#xff09;通过网络…