泛型(1)

news/2024/5/7 13:50:50/文章来源:https://www.cnblogs.com/shenziyi/p/16798031.html

泛型的概述

泛型是一种未知的数据类型 当我们不知道使用什么数据类型的时候 可以使用泛型

泛型也可以看出是一个变量 用来接收数据类型

当我们创建集合是就确定泛型类型

使用泛型的好处

我们都知道集合中是可以存放任意对象的 只要把对象存储集合后 那么这时他们都会被提升成Object类型 当我们在取出每个对象 并且进行相应的操作 这时必须采用类型转换

创建集合不使用泛型的好处:集合不使用泛型 默认的类型就是Object类型 可以存储任意类型的数据

创建集合不使用泛型的坏处:不安全 会引发异常

代码:

public static void main(String[] args) {
Collection<Object> list = new ArrayList<>();
list.add("张三");
list.add(15);
list.add(15.0);
list.add(true);

Iterator<Object> iterator = list.iterator();
while (iterator.hasNext()){
Object next = iterator.next();
System.out.println(next);
//要求使用String类里的length方法判断长度
//向下转型
String s=(String) next;
System.out.println(s.length());
}

}

运行结果:

 报出的是类型转换异常 不能将Interger类型转变成String类型

不使用Object类型

代码:

public static void main(String[] args) {
Collection<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){
String next = iterator.next();
System.out.println(next);

String s=(String) next;
System.out.println(s.length());
}
}

运行结果

 后面的数字就是我们String的长度 因为是遍历 所以只能一个一个算长度 比如:张三 长度为2 ...

泛型的定义和使用

定义一个含有泛型的类 模拟ArrayList集合

泛型是一个未知的数据类型 当我们不确定什么什么数据类型的时候 可以使用泛型

代码:

模拟集合类:

public class DemoArray<E> {
private E name;

public E getName() {
return name;
}

public void setName(E name) {
this.name = name;
}
}

测试类:

public static void main(String[] args) {
//泛型使用Integer
DemoArray<Integer> array = new DemoArray<>();
array.setName(10);
System.out.println(array.getName());
//泛型使用String
System.out.println("------------------");
DemoArray<String> array1 = new DemoArray<>();
array1.setName("张三");
System.out.println(array1.getName());
//不使用泛型 默认是Object类型
System.out.println("------------------");
DemoArray array2 = new DemoArray();
array2.setName(11);
System.out.println(array2.getName());
array2.setName("张三");
System.out.println(array2.getName());
}

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_401981.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无向图的双连通分量 DCC

双连通分量又称为重连通分量 分为 (1)边的双连通分量 EDCC &#xff1a;极大的不含桥的连通区域&#xff08;块&#xff09; 性质: 边的双连通分量不管删掉哪条边都是连通的 任意两点之间都包含两条不相交的路径&#xff08;充分必要&#xff09; (2)点的双连通分量 VDCC &…

电压掉电监测电路-三极管电路分析

电压掉电监测电路 电路在电压掉电时处于不稳定状态&#xff0c;经常需要采取一些应对措施。比如音响&#xff0c;内部的音频功率放大电路&#xff0c;在被突然拔掉电源时会发出刺耳的爆破音。 如果加入电压掉电监测电路&#xff0c;当监测到电压掉电时&#xff0c;输出一个信号…

MySQL目录结构与SQL基本概念

MySQL目录结构 1.MySQL安装目录配置文件 my.ini1、bin目录 用于放置一些可执行文件,如mysql.exe、mysqld.exe、mysqlshow.exe等。 2、data目录 用于放置一些日志文件以及数据库。 3、include目录 用于放置一些头文件,如:mysql.h、mysql_ername.h等。 4、lib目录 用于放置一系…

刷爆leetcode第七期 0018

刷爆leetcode第七期 0018题目编号0018 用队列实现栈第一步 定义结构体第二步 实现创建&#xff08;初始化&#xff09;第三步 删除接口函数第四步 返回头的值总结发现问题一发现问题二源码题目编号0018 用队列实现栈 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&…

.NET周报【10月第1期 2022-10-11】

本周精选 继C#实现await/async无栈协程几年后,davidwrighton实现了.NET绿色线程(有栈协程)的原型 https://github.com/dotnet/runtimelab/pull/2002 .NET Runtimelab中绿色线程的原型实现的PR,在不久的将来,.NET开发者也可以方便的用上有栈协程,目前的启动一个有栈协程的AP…

docker:基础命令未完待续

基础操作 docker info #查看docker的基本信息docker version #查看docker版本信息一、镜像操作 1、搜索镜像 docker search nginx2、下载镜像 docker pull nginx#从仓库中下载镜像&#xff0c;若没有指定标签&#xff0c;则下载最新的版本&#xff0c;也就是标签为: la…

Python快速刷题网站——牛客网 数据分析篇(十五)

&#x1f466;&#x1f466;一个帅气的boy&#xff0c;你可以叫我Love And Program &#x1f5b1; ⌨个人主页&#xff1a;Love And Program的个人主页 &#x1f496;&#x1f496;如果对你有帮助的话希望三连&#x1f4a8;&#x1f4a8;支持一下博主 前言 本文将继续学习pan…

MySQL的行锁、间隙锁和临建锁

目录 行锁 间隙锁&临键锁 行锁 InnoDB实现了以下两种类型的行锁&#xff1a; 共享锁&#xff08;S&#xff09;&#xff1a;允许一个事务去读一行&#xff0c;阻止其他事务获得相同数据集的排它锁。 //共享锁和共享锁兼容&#xff0c;共享锁和排他锁互斥。 排他锁&#…

43 多个相同限定名类型同时存在导致的继承结构混乱的情况

前言 // 四刷天府绿道 呵呵 在前面文章中 jetty-runner:jar:9.3.20 和 tomcat-embed-core-8.5.29 的 JarScannerCallback 不兼容, 导致服务启动失败 提到了这样的一个问题 我们再看一下这里的 callback 的接口, jetty-runner 的这个对象里面是没有 void scan(Jar jar, Str…

【附源码】计算机毕业设计SSM民宿短租系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

JavaEE - Servlet(向服务器上传文件 Part类)

我们在需要向服务器上传文件时&#xff0c;在前端需要使用form表单&#xff0c;form表单需要使用特殊的类型 form-data 此时提交文件的时候&#xff0c;浏览器会把文件内容以form-data的格式构造到HTTP请求中&#xff0c;服务器就可以通过getPart获取了 需要注意&#xff1a;…

2.idea 标定相关

1.发现 VINS对于参数准确性的要求高于ORBSLAM。依据是相同的参数,ORBSLAM可以提供准确的定位结果,但是VINS很容易就会发散。在线标定外参很有效,经历过几次外参标定以后的外参给VINS可以获得很好的效果,但是不排除只是针对这个场景,随后测试如果效果好,考虑给ORBSLAM3增加…

Redis常见的问题

① 缓存雪崩 缓存雪崩是指在短时间内&#xff0c;有⼤量缓存同时过期&#xff0c;导致⼤量的请求直接查询数据库&#xff0c;从⽽对数据库造成 了巨⼤的压⼒&#xff0c;严重情况下可能会导致数据库宕机的情况叫做缓存雪崩。 我们先来看下正常情况下和缓存雪崩时程序的执⾏流…

docker安装tomcat、mysql、redis

一、tomcat 1.下载tomcat8docker pull tomcat:8.5.612.启动容器(-d 后台启动)docker run -d -p 8080:8080 tomcat:8.5.61 3.访问首页http://ip:8080/访问不到 404 解决:需要修改tomcat下的文件夹 如下 进入后webapps.dist改为webapps 二、mysql 1.拉取mysqldocker pull mys…

网课题搜答案公众号接口系统

网课题搜答案公众号接口系统 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&#xf…

分布式数据库的基本概念

1.分布式数据库系统的产生和定义 产生原因: 经济的发展&#xff1a;经济发展&#xff1a;跨国公司&#xff1a;产生一个地方需要管理另外一个地方数据的需求 发展历程&#xff1a; 20世纪70年代末 成长于80年代 第一个数据库系统SDD-1是美国计算机公司(CAA)于1976年-1978年…

浏览器插件官方demo学习(一):基本代码、页面渲染、书签、cookie、Omnibox等

前言 参考&#xff1a;https://github.com/GoogleChrome/chrome-extensions-samples 官方目前只提供了几个基于v3版本的例子&#xff0c;其他例子都是基于v2版本的&#xff08;可能是官方比较忙&#xff0c;没空写例子吧&#xff09;。先从v3版本的例子开始学习&#xff0c;后…

JVM(六) —— 运行时数据区之堆的详细介绍(一)

JVM&#xff08;六&#xff09; —— 运行时数据区之虚拟机栈的详细介绍核心概述堆空间代码演示堆空间划分&#xff08;重要&#xff09;一个Java程序运行起来是一个进程&#xff0c;这个进程对应着一个JVM实例&#xff0c;一个JVM实例对应着一个运行时数据区。而一个运行时数据…

JAVA设计模式-组合模式

目录 1、例子 2、组合模式基本定义 总结&#xff1a; 1、例子 编写程序展示一个学校院系结构&#xff1a;需求是这样&#xff0c;要在一个页面中展示出学校的院系 组成&#xff0c;一个学校有多个学院&#xff0c;一个学院有多个系传统解决方案&#xff1a; 分析&#xff1a;…

一起学solidity写智能合约——整型(uint和int)

前言 整型一般用的比较多&#xff0c;会在各个合约中见到整型的存在&#xff0c;那么这个类型也是学习路上不可或缺的 环境&#xff1a; remix编译器点我跳转 正文 我们在sol中遇得到很多类型为整型的数据&#xff0c;所以我们的sol提供了两种数据类型的整型&#xff1a; …