跟我学java泛型技术及应用实例——java泛型技术在java集合中的应用示例

跟我学java泛型技术及应用实例——java泛型技术在java集合中的应用示例

ID:13259276

大小:248.50 KB

页数:10页

时间:2018-07-21

跟我学java泛型技术及应用实例——java泛型技术在java集合中的应用示例_第1页
跟我学java泛型技术及应用实例——java泛型技术在java集合中的应用示例_第2页
跟我学java泛型技术及应用实例——java泛型技术在java集合中的应用示例_第3页
跟我学java泛型技术及应用实例——java泛型技术在java集合中的应用示例_第4页
跟我学java泛型技术及应用实例——java泛型技术在java集合中的应用示例_第5页
资源描述:

《跟我学java泛型技术及应用实例——java泛型技术在java集合中的应用示例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、杨教授工作室精心创作的优秀程序员职业提升必读系列资料1.1跟我学Java泛型技术及应用实例——Java泛型技术在Java集合中的应用示例1、Java中的集合定义为泛型当我们将一个对象放入集合中,集合不会记住此对象的类型,当再次从集合中取出此对象时,改对象的编译类型变成了Object类型,但其运行时类型任然为其本身类型。为了使集合能够记住集合内元素各类型,且能够达到只要编译时不出现问题,运行时就不会出现“java.lang.ClassCastException”异常呢?在Java语言中将集合设计为泛型,如下示图为J

2、DKAPI中的Collection集合接口的定义:增加了泛型支持后的Java集合,完全可以记住集合中各个成员元素的数据类型,并可以在编译时检查集合中元素的类型。即解决一些安全问题;同时还可以让代码变得更加简洁。杨教授工作室,版权所有,盗版必究,10/10页杨教授工作室精心创作的优秀程序员职业提升必读系列资料2、不采用泛型的集合元素的应用示例java.util.ListoneList=newjava.util.ArrayList();oneList.add("1");/**在使用时通过强制类型转换获得正确的值*/o

3、neList.add(newInteger(2));StringoneElement=(String)oneList.get(0);/**此时将会出现转换错误而产生异常抛出*/System.out.println("不采用泛型的集合元素:"+oneElement);StringtwoElement=(String)oneList.get(1);System.out.println("不采用泛型的集合元素:"+twoElement);3、采用泛型的集合元素示例泛型规定了某个集合只能存放特定类型的属性,当添加类型与规

4、定不一致时,编译器会直接报错。而当我们从集合中取出成员元素时直接取出即可,不用进行类型转换,因为已经规定了里面存放的只能是某种类型。当然,在集合中除了可以存入定义的泛型类型的对象实例之外,也还可以存入泛型类型子类的对象实例。杨教授工作室,版权所有,盗版必究,10/10页杨教授工作室精心创作的优秀程序员职业提升必读系列资料/**在定义时通过强制类型转换获得正确的值*/java.util.ListoneGenericTypeList=newjava.util.ArrayList();o

5、neGenericTypeList.add("1");/**在编译时将会提示类型不兼容的错误*/oneGenericTypeList.add(newInteger(2));StringoneElement=oneGenericTypeList.get(0);System.out.println("采用泛型的集合元素:"+oneElement);StringtwoElement=oneGenericTypeList.get(1);System.out.println("采用泛型的集合元素:"+twoElement)

6、;从上面的对比示例中,可以看到在没有利用泛型的时候,我们必须强制类型转化,有时或会遇到类型转化的问题。这个问题会是在运行时错误才出现的,但是我们利用泛型就会在编译时发现问题----也就是如果在源代码中这样应用:oneGenericTypeList.add(newInteger(2))就会出现这样编译时错误----因为在编程时是希望发现问题越早则越好。因此泛型是Java语言迈向类型安全的一个重要标志,使用泛型可以构造出类型更加安全的代码。4、在Java集合中应用泛型(1)如何声明一个集合对象的实例在JDK5中可以这

7、样声明一个集合对象的实例:java.util.ListmyList;  对于List接口来说,当一个List接口的实现类的实例被创建以后,E将被当作该集合中的一个或多个方法的参数和返回值的类型。下面是List接口中的add和get的定义:publicbooleanadd;publicEget(intindex);除此之外,如果E是个有继承关系的类,则也可以传递该类的子类;如果E是个接口,杨教授工作室,版权所有,盗版必究,10/10页杨教授工作室精心创作的优秀程序员职业提升必读系列资料则可以传递该接口

8、的实现类。下面的示例是将E设置为Number类型:  ListnumberList=newArrayList();  numberList.add(2.0);  numberList.add(2);而下面的示例是将E设置为String类型:ListmyList;那么mylist的add方法将接受一个String作为它的参数,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。