泛型的学习
泛型深入
泛型:可以在编译阶段约束操作的数据类型,并进行检查
泛型的格式:<数据类型>
注意:泛型只能支持引用数据类型
//没有泛型的时候,集合如何存储数据//如果我们没有给集合指定类型,默认认为所有的数据类型都是Object类//此时可以在集合添加任意的数据类型//带来一个坏处,我们在获取数据的时候,无法使用他的特有行为//此时推出了泛型,可以在添加数据的时候,将数据类型统一//而且让我们获取数据的时候,也可以进行强转//1.创建集合ArrayList list = new ArrayList<>();//2.添加数据list.add(123);list.add("aaa");System.out.println(list);//3.遍历集合Iterator iterator = list.iterator();while (iterator.hasNext()){Object next = iterator.next();//多态的弊端是无法访问子类的特有功能System.out.println(next);}
}
泛型的好处:
同意数据类型。把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,因为在编译阶段类型就能确定下来
Java中的泛型都是伪泛型
泛型的细节:
泛型中不能写基本数据类型
指定泛型的具体类型后,传递数据时,可以传入该类类型或者其子类类型
如果不写泛型,类型默认为Object
泛型可以在很多地方进行定义:
类后面 泛型类
当一个类中,某个变量的数据类型不确定时,就可以定义带有泛型的类
/*当我在编写一个类的时候,不确定类型,那么这个类型就可以定义为泛型类
* */
public class MyGenerics<E> {Object[] obj = new Object[10];int size;/*E: 表示不确定的类型,该类型在类名后面定义过* */public boolean add(E e) {obj[size] = 0;size++;return true;}public E get(int index) {return (E) obj[index];}@Overridepublic String toString() {return Arrays.toString(obj);}
}
public static void main(String[] args) {MyGenerics<String> list = new MyGenerics<>();list.add("aaa");list.add("bbb");list.add("ccc");list.add("ddd");// System.out.println(list);}
方法上面 泛型方法
方法中形参的类型不确定时,可以使用类名后面定义的泛型<E>
public class ListUtil {private ListUtil(){}//类中定义一个静态方法addAll,用来添加多个集合的元素/*参数一:集合参数二:元素*/public static <E> void addAll(ArrayList<E> list,E e,E e2,E e3,E e4){list.add(e);list.add(e2);list.add(e3);list.add(e4);}
}
public class Demo3 {public static void main(String[] args) {ArrayList<String> list = new ArrayList<>();ListUtil.addAll(list, "a", "b", "c", "d");System.out.println(list);}
}
接口后面 泛型接口
如何使用?
方式1:实现类给出具体类型


方式2:实现类延续泛型,创建对象时在确定
相关文章:
泛型的学习
泛型深入 泛型:可以在编译阶段约束操作的数据类型,并进行检查 泛型的格式:<数据类型> 注意:泛型只能支持引用数据类型 //没有泛型的时候,集合如何存储数据//如果我们没有给集合指定类型,默认认为…...
L1-061 新胖子公式(Python实现) 测试点全过
前言: {\color{Blue}前言:} 前言: 本系列题使用的是,“PTA中的团体程序设计天梯赛——练习集”的题库,难度有L1、L2、L3三个等级,分别对应团体程序设计天梯赛的三个难度。更新取决于题目的难度,…...
潜艇来袭(Qt官方案例-2维动画游戏)
一、游戏介绍 1 开始界面 启动程序,进入开始界面。 2 开始新游戏 点击菜单:File》New Game (或者CtrlN)进入新游戏。 开始新游戏之后,会有一个海底的潜艇,和水面舰艇对战。 计算机:自动控制…...
50ETF期权开户平台(0门槛期权开户指南)
50ETF期权开户平台比较好的有:期权馆,期权科普馆,小熊期权,期权酱,财顺财经,财顺期权等,都是国内前十的期权分仓平台,下文为大家结算50ETF期权开户平台(0门槛期权开户指南…...
leaflet · 关于轨迹移动
1.引入 import MovingMarker from "../src/utils/MovingMarker"; 2.MovingMarker.js内容 import L from "leaflet"; import eventBus from ../util/eventBus; L.interpolatePosition function(p1, p2, duration, t) {var k t/duration;k (k > 0) ? …...
学生宿舍水电费自动缴费系统/基于javaweb的水电缴费系统
摘 要 “互联网”的战略实施后,很多行业的信息化水平都有了很大的提升。但是目前很多学校日常工作仍是通过人工管理的方式进行,需要在各个岗位投入大量的人力进行很多重复性工作,这样就浪费了许多的人力物力,工作效率较低&#x…...
机器人中的数值优化(十三)——QP二次规划
本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,…...
语言深入理解指针(非常详细)(三)
目录 数组名的理解使用指针访问数组 一维数组传参的本质二级指针指针数组指针数组模拟二维数组 数组名的理解 在上⼀个章节我们在使用指针访问数组的内容时,有这样的代码: int arr[10] {1,2,3,4,5,6,7,8,9,10}; int *p &arr[0];这里我们使用 &am…...
实训笔记8.31
实训笔记8.31 8.31笔记一、项目开发流程一共分为七个阶段1.1 数据产生阶段1.2 数据采集存储阶段1.3 数据清洗预处理阶段1.4 数据统计分析阶段1.5 数据迁移导出阶段1.6 数据可视化阶段 二、项目数据清洗预处理的实现2.1 清洗预处理规则2.1.1 数据清洗规则2.1.2 数据预处理规则 2…...
el-table 垂直表头
效果如下: 代码如下: <template><div class"vertical_head"><el-table style"width: 100%" :data"getTblData" :show-header"false"><el-table-columnv-for"(item, index) in getHe…...
B081-Lucene+ElasticSearch
目录 认识全文检索概念lucene原理全文检索的特点常见的全文检索方案 Lucene创建索引导包分析图代码 搜索索引分析图代码 ElasticSearch认识ElasticSearchES与Kibana的安装及使用说明ES相关概念理解和简单增删改查ES查询DSL查询DSL过滤 分词器IK分词器安装测试分词器 文档映射(字…...
机器学习:塑造未来的核心力量
着科技的飞速发展,机器学习已经成为我们生活中不可或缺的一部分。无论是搜索引擎、推荐系统,还是自动驾驶汽车和机器人,都依赖于机器学习算法。本文将探讨机器学习的基本概念、应用领域以及未来发展趋势。 一、机器学习的基本概念 机器学习…...
RK3568-i2c-适配8010rtc时钟芯片
硬件连接 从硬件原理图中可以看出,rtc时钟芯片挂载在i2c3总线上,设备地址需要查看芯片数据手册。编写设备树 &i2c3 {status "okay";rx8010: rx801032 {compatible "epson,rx8010";reg <0x32>;}; };使能驱动 /kernel/…...
Spring Security - 基于内存快速demo
基于内存方式 - 只作学习参考1.引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>2.login.html、index.html、fail.htmllogin.html:<form method…...
6 | 从文本文件中读取单词并输出不重复的单词列表
Transformation 操作 Transformation 操作是用于从一个 RDD(Resilient Distributed Dataset)创建一个新的 RDD,通常是通过对原始 RDD 的元素进行映射、筛选、分组等操作来实现的。Transformation 操作不会立即执行,而是惰性计算,只有在 Action 操作触发时才会真正执行。以…...
【微信小程序篇】- 多环境(版本)配置
最近自己在尝试使用AIGC写一个小程序,页面、样式、包括交互函数AIGC都能够帮我完成(不过这里有一点问题AIGC的上下文关联性还是有限制,会经常出现对于需求理解跑偏情况,需要不断的重复强调,并纠正错误,才能得到你想要的…...
ssh配置(一、GitLabGitHub)
一. 为什么配置ssh 使用 ssh 克隆项目,更加安全方便。 git clone 项目时一般使用两种协议 https 和 ssh 。 二. 原理的通俗解释 ssh 解决的问题是登录时的用户身份验证问题,默认使用 RSA(也支持其他算法: RSA、DSA、ECDSA、EdD…...
开了抖店后就可以直播带货了吗?想在抖音带货的,建议认真看完!
我是王路飞。 关于抖店和直播带货的关系,其实很多人经常搞不清楚。 不然的话,也不会有这个问题的出现了:开了抖店后就可以直播带货了吗? 在我看来,这个问题很简单,但在不了解抖音电商和直播带货其中门道…...
【深度学习实验】数据可视化
目录 一、实验介绍 二、实验环境 三、实验内容 0. 导入库 1. 归一化处理 归一化 实验内容 2. 绘制归一化数据折线图 报错 解决 3. 计算移动平均值SMA 移动平均值 实验内容 4. 绘制移动平均值折线图 5 .同时绘制两图 6. array转换为tensor张量 7. 打印张量 一、…...
【Golang】函数篇
1、golang函数基本定义与使用 func 函数名 (形参列表) (返回值类型列表) {函数体return 返回值列表 }其中func用于表明这是一个函数,剩下的东西与其他语言的函数基本一致,在定义与使用的时候注意函数名、参数、返回值书写的位置即可。下面使用一个例子…...
新手福音:用快马生成centos8下载安装全流程可视化引导工具
今天想和大家分享一个特别适合Linux新手的实用工具——用InsCode(快马)平台快速生成CentOS 8下载安装引导程序。作为一个从Windows转Linux的过来人,我深知第一次面对系统安装时的茫然,这个工具能帮你把复杂流程变成可视化指引。 为什么需要这个工具 刚接…...
告别重复劳动,用快马平台ai高效生成openclaw自动化脚本
最近在折腾一些文件批量处理的自动化任务,发现OpenClaw这个命令行工具特别适合做这类工作。但每次都要手动敲命令实在太费时间了,特别是需要组合多个命令的时候,调试起来特别麻烦。后来发现了InsCode(快马)平台,用它来编写OpenCla…...
大模型面试必备:模型训练与微调 15 问全解析
导读:2026 年,大模型已从"尝鲜"走向"落地"。无论是求职面试还是项目实战,模型训练与微调都是绕不开的核心话题。本文基于面试辅导资料,结合行业最佳实践,梳理了 15 个关键知识点,助大家…...
SEO_如何通过内容优化有效提升SEO效果(353 )
SEO内容优化:如何通过高质量内容提升SEO效果 在当今的互联网时代,搜索引擎优化(SEO)已经成为了每一个网站运营者必须掌握的技能。而其中,内容优化是提升SEO效果的关键。好的内容不仅能吸引更多的访问者,还…...
想找济南市中区靠谱装修施工工艺商家?这家公司值得一探!
26年初,随着济南市中区新盘交付,家装成为许多业主生活中的一件大事。然而,家装市场鱼龙混杂,价格不透明、施工质量参差不齐等问题让不少业主头疼不已。今天,我们就来深入探讨几家本地的装修公司,为大家的家…...
为什么很多实时图表方案会失败?
在监控系统、IoT设备平台、金融行情等场景中,“实时数据可视化”已经成为前端的核心能力之一。很多开发者在 React 项目中尝试实现实时图表时,往往会遇到卡顿、延迟甚至内存增长的问题。在 React 中实现实时图表,推荐使用 Highcharts…...
终极指南:如何使用Rust构建企业级数据脱敏系统
终极指南:如何使用Rust构建企业级数据脱敏系统 在当今数据驱动的时代,企业面临着日益严格的隐私保护法规和数据安全挑战。数据脱敏作为保护敏感信息的关键技术,正成为企业数据治理的核心环节。本文将详细介绍如何利用Rust这一安全高效的系统编…...
工厂化循环水产养殖系统:数据驱动,养殖更精准
工厂化循环水产养殖系统解决方案,以物联网感知、智能控制、大数据分析、智能决策为核心,构建“水质精准调控智能投喂生长监测病害报警运维管理循环水处理”全链路闭环,实现高密度、零换水(或微换水)、高产出、低风险的现代化养殖。 通过物联网…...
思源宋体:3大核心优势+5步落地指南,免费商用中文字体解决方案
思源宋体:3大核心优势5步落地指南,免费商用中文字体解决方案 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 在数字化设计与开发中,中文字体的选择一…...
【30】软考软件设计师——UML类图与用例图满分精讲|下午第3题常考核心
摘要:本文是《软件设计师50讲通关|从零基础到工程师职称》专栏第30篇,聚焦模块四:应用技术(下午题)第3道高频大题,UML建模是历年下午必考核心,单题分值稳定10~12分。全文深度拆解两大核心UML图表:类图与用例图,超详细讲解类图三层结构、可见性修饰符、五大核心关系(…...
