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

什么是泛型以及在集合中泛型的使用[通俗易懂]什么是泛型?泛型最常与集合使用,因为泛型最开始开始被加入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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用pycharm安装包失败后,应该怎么办?

    使用pycharm安装包失败后,应该怎么办?用pycharm进行安装第三方包的时候,一些情况下会出现安装失败(具体怎么安装搜一下,教程很全,但这不是想说的重点)。有时候是因为pip版本较低,升级一下即可,但有时候就是安装不上,原因查了一下,有的博主说是pip不支持断点续传,也有的说是版本路径问题。但是不论如何,这个问题有解决的方法,也是迫不得已的办法。第一步:去官网下载对应的安装包,网址如下:这是网址至于应该安装什么样的包,最简单…

    2022年5月13日
  • 海量数据存储技术与解决方案[通俗易懂]

    海量数据存储难点:数据量过大,数据中什么情况都可能存在;软硬件要求高,系统资源占用率高;要求很高的处理方法和技巧。海量数据存储处理经验:一、选用优秀的数据库工具    现在的数据库工具厂家比较多,对海量数据的处理对所使用的数据库工具要求比较高,一般使用Oracle或者DB2,微软公司最近发布的SQLServer2005性能也不错。另外在BI领域:数据库,数据仓库,多维数据库,数据挖

    2022年4月14日
  • Laravel中利用队列发送邮件的方法示例

    Laravel中利用队列发送邮件的方法示例

    2021年10月26日
  • J2EE架构师之路[转]

    J2EE架构师之路[转]
    不经意的回首,工作进入第五个年头了,发现走过了从Java程序员到J2EE架构师的历程。
    发现电脑上安装了各种各样的J2EE工具:JBuilder,WSAD,Eclipse,Rose,Together,Weblogic,Jtest,Optimizator,Mysql…
    发现电脑上保存了各种各样的OpenSource项目:Tomcat,JBoss,Ant,Hibernate,Spring,ibatis,Struts,Log4j,Lucene,MovableTyp

    2022年6月26日
  • 电信dns地址是多少?

    电信dns地址是多少?安徽电信dns地址202.102.192.68202.102.199.68澳门电信dns地址202.175.3.8202.175.3.3北京电信dns地址202.96.199.133202.96.0.133202.106.0.20202.106.148.1重庆电信dns地址61.128.128.68…

    2022年7月15日

发表回复

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

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