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

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


相关推荐

  • LLDP报文格式

    LLDP报文格式前面已经知道了FloodlightController是通过从SW发送LLDP帧来获得链路信息的,链路层发现协议(L2)是通过在本地网络中广播LLDP报文来通告自己的设备信息,从而服务于拓扑计算,(wikipedia:LLDPinformationissentbydevicesfromeachoftheirinterfacesatafixedinterval,i

    2022年5月28日
    46
  • gradle 打包命令(怎么在mac终端输入命令)

    Gradle终端命令给App打包估计好多兄弟们都习惯了用AndroidStudio和Eclipse的build直接对app进行打包,突然有一天领导让用Gradle打包,就措手不及了,我为大家附上方法:首先,需要有一个本地的Gradle,在此我附上网址,是我自己传到网盘上的,所以不是最新的,不影响使用gradle-2.4-all链接:http://pan.baidu.com/s/1nvRcDV7密

    2022年4月15日
    44
  • mysql数据库日志存储位置_MySQL数据库之mysql日志文件在哪 如何修改MySQL日志文件位置…「建议收藏」

    mysql数据库日志存储位置_MySQL数据库之mysql日志文件在哪 如何修改MySQL日志文件位置…「建议收藏」本文主要向大家介绍了MySQL数据库之mysql日志文件在哪如何修改MySQL日志文件位置,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。MySQL日志文件相信大家都有很多的了解,MySQL日志文件一般在:/var/log/mysqld.log,下面就教您修改MySQL日志文件位置的方法,供您参考。今天需要改MySQL日志文件的位置,发现在/etc/my.cnf中怎么也改不…

    2022年10月14日
    4
  • MySql的入侵测试以及防范「建议收藏」

    MySql的入侵测试以及防范

    2022年3月7日
    47
  • ubuntu安装qt4.8.7_ubuntu卸载qt

    ubuntu安装qt4.8.7_ubuntu卸载qt由于qt4.8支持的环境比较老,所以ubuntu1820这些高版本安装时会出现各种问题,最好在14和16下安装,本文的版本是ubuntu16.04。下载并安装首先下载,然后解压,下载地址为:https://download.qt.io/archive/qt/4.8/4.8.6/tar-xzvfqt-everywhere-opensource-src-4.8.6.tar.gz然后cd进解压目录中,输入./configure,然后选择o回车,接着输入yes回车./config

    2022年10月15日
    3
  • 怎么从安卓设备转移数据到苹果_如何将数据从安卓手机转移到苹果手机[通俗易懂]

    怎么从安卓设备转移数据到苹果_如何将数据从安卓手机转移到苹果手机[通俗易懂]手机人手一部,更新也特别快,换系统的同时也想保留之前的数据怎么办?如何将数据从安卓手机转移到苹果手机?android手机数据转移到iPhone手机的方法教程在这里为你准备,第一次使用苹果的用户怎样才能将原有android数据迁移到苹果呢?来看如下具体内容!我们都知道在大屏iPhone6和iPhone6Plus智能手机即将上市的前夕,苹果公司发布了一份详细的支持文件,指导Android用户如何…

    2026年1月19日
    3

发表回复

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

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