java泛型(1) 认识泛型
- 当我们从一个集合里取出来一个元素的时候,如果没有使用泛型,那么这个元素的类型是Object,因为集合没有办法记住他的元素的数据类型,所以我们要使用集合元素的时候,第一步就是要强制类型转换,这会使得代码变得非常臃肿,而且一不小心就ClassCastException,所以在java5后有了泛型,泛型可以使得集合可以“记住”他的元素的类型,这样子极大的方便了集合的使用,以下为最简单的泛型使用示例
package UseIt;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;public class DiamonTest {public static void main(String args[]){List<String> list = new ArrayList<>();list.add("java1");list.add("java2");for(String str : list){System.out.println(str);}Map<String, List<String>> map = new HashMap<>();List<String> list1 = new ArrayList<>();list1.add("java1");list1.add("java1");map.put("java3", list1);for(String key : map.keySet()){List <String> list2 = map.get(key); // 这里已经不需要强制转换了,因为集合已经“记住”了它的元素的类型System.out.println(key + "---->" + list2);}}} //输出结果 // java1 // java2 // java3---->[java1, java1]
补充一下,在java7之后出现了“菱形”语法,即使在声明诸如 List<String> list = new ArrayLaist<String>();的时候,可以用List<String> list = new ArrayLaist<>();代替,因为后面尖括号里的String是没有存在的必要的
java泛型(1) 认识泛型相关推荐
- 泛型java 代码讲解_Java泛型详解
2516326-5475e88a458a09e4.png 一,打破砂锅问到底 泛型存在的意义? 泛型类,泛型接口,泛型方法如何定义? 如何限定类型变量? 泛型中使用的约束和局限性有哪些? 泛型类型的继 ...
- Java这个高级特性-泛型,很多人还没用过!
点击关注公众号,Java干货及时送达 泛型是 Java 的高级特性之一,如果想写出优雅而高扩展性的代码,或是想读得懂一些优秀的源码,泛型是绕不开的槛.本文介绍了什么是泛型.类型擦除的概念及其实现,最后 ...
- Java基础篇:泛型
文章目录 1.为什么要有泛型 2.在集合中使用泛型 3.自定义泛型结构 4.泛型在继承上的体现 5.通配符的使用 1.为什么要有泛型 泛型:标签 泛型背后的核心思想就是:把一个集合中的内容限制为一个特 ...
- java中什么时候不能用泛型_java中泛型的正确使用姿势
image.png 泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用.利用好泛型,在系统架构中是一把利器. 泛型类 先看一个例子,restful架构中,需要定义api接口返回 ...
- java 泛型 t_Kotlin(2) 泛型与集合
前言 以一个java老鸟的角度,如何去看 kotlin.Java源代码应该如何用Kotlin重构.如何正确学习kotlin并且应用到实际开发中.本文将会探究. 本文分两大块,重难点和潜规则. 重难点: ...
- java支持泛型_Java自学-泛型 支持泛型的类
Java 如何设计支持泛型的类 步骤 1 : 不支持泛型的Stack 以Stack栈为例子,如果不使用泛型 当需要一个只能放Hero的栈的时候,就需要设计一个HeroStack 当需要一个只能放Ite ...
- java参数传入泛型类型_Java 5.0 泛型之 使用泛型统一传入的参数类型
Java 5.0 泛型之 使用泛型统一传入的参数类型 package Demo; // 使用泛型统一传入的参数类型 class Info28 { private T var; // 此类型由外部决定 ...
- Java基础篇:泛型与类型擦除
一.什么是泛型: 泛型的本质是 参数化类型,也就是说 将所操作的数据类型 指定为一个参数,在不创建新类的情况下,通过参数来指定所要操作的具体类型(类似于方法中的变量参数,此时类型也定义成参数形式),也 ...
- yii2数组转为对象_好程序员Java学习路线分享java为什么不支持泛型数组
本篇文章好程序员为大家一下java为什么不支持泛型数组,希望对大家有所帮助. public class Pair { public void info( ) { System.out.println( ...
- java使用泛型后消除泛型_如何以及何时使用泛型
java使用泛型后消除泛型 本文是我们名为" 高级Java "的学院课程的一部分. 本课程旨在帮助您最有效地使用Java. 它讨论了高级主题,包括对象创建,并发,序列化,反射等. ...
最新文章
- 电子游戏现在已经在当处方药了
- Codeup 问题 B: 算法7-16:弗洛伊德最短路径算法
- 希望今年能看懂和写出这样的Swift代码
- Tinyhttpd源码--实现http服务器
- 持续5个月,200+笔记,3千多人参与,邀请你来学源码~
- HDU2602 (0-1背包)
- java 根据类名示例化类_Java LocalDateTime类| ofInstant()方法与示例
- PCM音频文件的制作
- 肿瘤免疫浸润资源汇总
- PJzhang:左耳朵耗子-陈皓
- oo结尾的单词发音规律
- 3dmax 注意事项
- java最简单的打印日历表_java实现打印日历
- 随便说说,中国开发人员的不同层次和一些思考。
- 从技术起源看TD-SCDMA的演进
- 测试声音软件贴吧,免费声音相似度测量软件Sound-Similar Free
- 把代码写烂点,你在公司就不可代替了?
- (一)Apollo配置中心介绍
- TCP/IP协议中分包与重组原理介绍、分片偏移量的计算方法、IPv4报文格式
- [Excel]rank函数实现自动排序
热门文章
- chrome 切换标签页快捷键_chrome浏览页面常用快捷键
- Javascript算法练习(四)
- 事件营销成功案例-引爆全网的优衣库事件
- deepin升级Linux内核,深度 deepin 20.1 (1005)系统开启内测:升级至 Linux Kernel 5.8 稳定内核...
- 一根均线选股法_一条均线走天下,经典实用的均线选股战法,学会让你少走弯路!...
- c语言错误 应输入声明,C++错误:应输入声明
- 团队的英文翻译缩写_(整理)公司部门英文缩写简称大全
- 虚幻引擎UE4编辑器介绍
- 指环王中那个白色头发、擅长用弓箭的精灵族男子
- numpy保存npy