什么是泛型?

泛型最常与集合使用,因为泛型最开始开始被加入Java就是为了解决集合向下转型一类问题的。如果我们有这样一个需求:定义一个描述类圆,要求圆中的数据类型是不确定的,也就是声名属性的时候,属性类型是不确定的。比如描述类圆中有半径,要求半径可以用int,也可以用double。那么此时数据类型不确定,就使用泛型,把数据类型参数化。

集合中泛型的使用

List中使用泛型

在我们创建集合时使用<>来声明List集合只能保存Dog类对象
List dogs=new ArrayList<>();
创建Dog类对象
Dog dog1 = new Dog(“101”,“来福”);
添加Dog对象到集合中
dogs.add(dog1);//此时dogs集合中只能存放Dog类对象

public class ListTest {public static void main(String[] args) {//声明List集合只能保存Dog类对象List<Dog> dogs=new ArrayList<>();//创建Dog对象。Dog dog1=new Dog();dog1.setId(111);dog1.setName("来福");Dog dog2=new Dog();dog2.setId(112);dog2.setName("来福2");//Dog对象添加到集合dogs.add(dog1);dogs.add(dog2);//获得某个元素Dog dog = dogs.get(1);System.out.println(dog);//获得List集合的迭代器Iterator<Dog> it = dogs.iterator();while(it.hasNext()) {Dog next = it.next();System.out.println(next);}//使用高级for进行遍历for(Dog d:dogs) {System.out.println("--"+d);}}
}

Map中使用泛型

创建集合对象,key为String类型,value为Dog类类型。
Map<String,Dog> dogs=new HashMap<>();
将dog对象保存到Map集合中
dogs.put(“111”, dog1);//此时的key只能是字符串类型,value只能是Dog类型

总结:

在集合中使用泛型的目的就是为了解决向下转型的问题,在泛型具体化之后,集合只能存储与泛型具体化之后的类型。

什么是泛型以及在集合中泛型的使用相关推荐

  1. java中的泛型是什么_Java中泛型是什么?Java泛型的详细介绍

    本篇文章给大家带来的内容是关于Java中泛型是什么?Java泛型的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一.什么是泛型? Java泛型设计原则:只要在编译时期没有出 ...

  2. java 集合与泛型_java的集合和泛型的知识点归纳1

    [Collection.泛型] 主要内容 Collection集合 迭代器 增强for 泛型 教学目标 [ ] 能够说出集合与数组的区别 [ ] 说出Collection集合的常用功能 [ ] 能够使 ...

  3. java dao 泛型的好处_java中泛型有什么作用

    泛型的作用如下: 1.类型安全 泛型的主要目标是提高 Java 程序的类型安全.编译时的强类型检查:通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设.没有泛型,这些假设 ...

  4. java 来自集合中泛型序列化的bug,难得一遇

    背景 jdk1.8 本次事故简介 报错定位 entity 数据库字段 调试断点 图片看完,我们发现本应该是List的地方竟然存着ArrayList. 排查逻辑1:此处属于查询完数据库后的事故 排查逻辑 ...

  5. Java泛型(1)--集合使用泛型Generic、自定义泛型、泛型在继承上的体现、通配符的使用

    文章目录 泛型的概念 集合中使用泛型 自定义泛型结构 泛型在继承上的体现 通配符的使用 泛型的概念 集合容器类在设计阶段/声明阶段不能确定这个容器实际存的是什么类型的对象,所以在JDK1.5之前只能把 ...

  6. Java基础巩固(一)类,接口,枚举,常用API,集合,泛型,正则,数据结构

    一.static.final.权限关键字,代码块,接口,枚举 1 关键字 2 代码块 3 接口 4 枚举 idea快捷键 shift + enter 换行 ctrl + Alt + shift + U ...

  7. linq判断集合中相同元素个数_JavaSe集合的概念以及集合框架介绍

    ###集合 今天任务 1.概念1.1 集合的概念1.2 集合的框架结果介绍1.3 集合和数组的对比 2.Collection接口2.1 Collections中常用的方法 3.泛型3.1 什么是泛型3 ...

  8. 定义一个泛型为String类型的List集合,统计该集合中每个字符 (注意,不是字符串)出现的次数。例如:集合中有”abc”、”bcd”两个元素, 程序最终输出结果为:

    代码 import java.util.*;/*6.定义一个泛型为String类型的List集合,统计该集合中每个字符(注意,不是字符串)出现的次数.例如:集合中有"abc".&q ...

  9. java集合中的泛型的使用

    -----------------------java集合中的泛型的使用------------------------ 我们在项目中使用集合基本99%都是在集合中存储同一种数据类型.既然我们在集合中 ...

最新文章

  1. Antd Vue range-picker 日期初始值设置 与 重置日期踩坑总结
  2. .net安装部署中添加卸载程序简单方法
  3. 【工作秘籍】Facebook内部高效工作大揭秘
  4. 百练162:Post Office
  5. c语言变凉存储性,C语言数据的表示和存储(IEEE 754标准)
  6. [Elasticsearch2.x] 多字段搜索 (三) - multi_match查询和多数字段 译
  7. 剑指offer之 二叉搜索树的后续遍历序列
  8. JDK 8的一些新特性
  9. SQL 行转列、列转行
  10. c语言教程苏小红,《数据结构(C语言)》苏小红 课本案例
  11. 使用pscp在Linux、Windows间互传文件
  12. 固高板卡mct2008调试轴回零_固高电机控制调试软件mct2008 v2.0
  13. 苹果耳机无线真假测试软件,苹果耳机“真伪”终极鉴别来了,原来,区别如此大!...
  14. instsrv+srvany 程序以服务方式自启 bat脚本快速配置
  15. react 父组件数据更新 触发 子组件重新渲染
  16. Vivado工程清除中间文件
  17. 安利三款好用的音频剪辑软件,值得收藏
  18. 利用HY-SRF05 超声波模块实现超声波的测距避障
  19. K8S官方部署方式以及自签SSL证书介绍
  20. 解决办法: Vue cross-env NODE_ENV=production webpack --progress --hide-module

热门文章

  1. 解决编译中“file too short”问题
  2. Hive将带有斜杆的时间拼接成字符串
  3. 华为设备状态操作命令
  4. android自动实例化的网站,Appium安卓自动化从入门到入土踩坑实践(五)第一个自动化脚本...
  5. 全球收入同比下降4.9%、面临证券欺诈诉讼,苹果CEO库克致歉投资者...
  6. Android 应用冻结流程分析
  7. OpenStack介绍说明、OpenStack架构说明、OpenStack核心服务详细说明【keystone,nova,cinder,neutron...】、OpenStack创建VM,服务间交互示例
  8. 首次!我国以计算机系为第一完成单位的论文登上《自然》
  9. 智能玩具市场巨大,WowWee品牌即将进入中国
  10. client-go源码学习(二):Reflector、DeltaFIFO