什么是泛型以及在集合中泛型的使用[通俗易懂]

什么是泛型以及在集合中泛型的使用[通俗易懂]什么是泛型?泛型最常与集合使用,因为泛型最开始开始被加入Java就是为了解决集合向下转型一类问题的。如果我们有这样一个需求:定义一个描述类圆,要求圆中的数据类型是不确定的,也就是声名属性的时候,属性类型是不确定的。比如描述类圆中有半径,要求半径可以用int,也可以用double。那么此时数据类型不确定,就使用泛型,把数据类型参数化。集合中泛型的使用List中使用泛型在我们创建集合时使用<>来声明List集合只能保存Dog类对象Listdogs=newArrayList<&gt

大家好,又见面了,我是你们的朋友全栈君。

什么是泛型?

泛型最常与集合使用,因为泛型最开始开始被加入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类型

总结:

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151141.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matlab 时频分析(短时傅里叶变换、STFT)「建议收藏」

    matlab 时频分析(短时傅里叶变换、STFT)「建议收藏」短时傅里叶变换,short-timefouriertransformation,有时也叫加窗傅里叶变换,时间窗口使得信号只在某一小区间内有效,这就避免了传统的傅里叶变换在时频局部表达能力上的不足,

    2022年8月2日
    17
  • 比例和比率的区别

    比例和比率的区别数据分析中可能会出现比例和比率的区别:举个例子:全班人数50人,男生30,女生20,那男生的比例就是30/50,同理女生的就是20/50,那么男女的比率是什么呢,是30/20对,就是这个区别。…

    2022年5月15日
    124
  • 7道常见的数据分析面试题[通俗易懂]

    7道常见的数据分析面试题[通俗易懂]InfoQ内容来自极客时间《数据分析实战45讲》数据分析师近几年在国内互联网圈越来越火,很多开发都因为薪资和发展前景,希望转行到数据分析岗。今天,我们就来聊聊面试数据分析师的那些事。其实,数据分析能力是每个互联网人的必备技能,哪怕你没有转行数据分析师的计划,也推荐你看看这个专题,提升你的数据能力。数据分析的能力要求与数据分析相关的工作有一个特质,就是对数字非常敏感,同时也要求对数据具…

    2022年5月27日
    36
  • python常见的5种框架

    python常见的5种框架1.scrapy框架scrapy框架是一套比较成熟的python爬虫框架,是使用python开发的快速、高层次的信息爬取框架,可以高效率地爬取web页面并提取出我们关注的结构化数据。scrapy框架的应用领域有许多,比如网络爬虫,数据挖掘、数据监测、自动化测试等。scrapy框架是一套开源的框架,…

    2022年6月6日
    1.1K
  • 各大免费邮箱邮件群发账户SMTP服务器配置及SMTP发送量限制情况

    各大免费邮箱邮件群发账户SMTP服务器配置及SMTP发送量限制情况分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程网络产品推广和新闻消息推送时,经常用到的工具就是用客户邮箱发送邮件了,如果是要发送的邮件量非常大的话,一般的建议是搭建自己的邮局服务器,或者是花钱购买专业的邮件群发服务,免费邮箱的SMTP适合少量的邮件群发需求。例如Wordpress的评论邮件通知功能,每天要发送的邮件数量…

    2022年10月3日
    2
  • Java基础-遍历数组

    Java基础-遍历数组Java基础-遍历数组1、语法简介2、一维数组3、二维数组4、三维数组1、语法简介在Java中,对for语句的功能给予了扩充、加强,以便更好的遍历数组。语法格式如下:for(声明循环变量:数组的名字){ ………}其中,声明的循环变量的类型必须与数组类型相同。2、一维数组代码:packageThroughArray;//遍历一维数组publicclassOneDimensionalArray{publicstaticvoidmain(String

    2022年9月19日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号