Java泛型集合

在JDK1.5中引入的泛型有效解决了Collection和Map等集合操作中的类型转换异常问题,通过在创建集合时指定元素类型,避免了运行时的类型转换异常,提高了代码的健壮性和开发效率。

在集合框架中,Collection的add(Object obj)方法的参数是一个Object类型,无论把什么对象放入Collection及子接口或实现类中,认为只是Object类型,在通过get(int index)方法取出集合中元素是必须进行强制类型转换,不仅
繁琐而且容易出现ClassCastException异常(类型转换异常)。Map中使用put(Object key,Object value)和get(Object key)方法存取对象时,使用Iterator的next()方法获取元素是也存在同样的问题。

JDK1.5中通过引入泛型(Generic)有效的解决了这个问题。在JDK1.5中已经改写了集合框架中的所有接口和类,增加了泛型的支持。

使用泛型集合在创建集合对象是指定集合中元素的类型,从集合中取出元素是无需进行类型强制转换,并且如果把非指定类型对象放入集合,会出现编译错误。

举个例子,在没有使用泛型集合时存取String类型的对象:

ArrayList list=new ArrayList();
list.add("hello")
list.add("world");
for(Object obj:list){
	String str=(String)obj;
	System.out.println(str);
}

可以看出在使用集合中的元素时必须强制类型转换,但是如果我们使用泛型集合:

ArrayList<String> list=new ArrayList<String>();
list.add("hello")
list.add("world");
for(String str:list){
	System.out.println(str);
}

可以看出由于我们使用了泛型集合,在创建集合时指定了集合元素的类型,因此我们可以直接使用集合中的元素,不需要再进行类型转换,同时在向集合中存入元素是也必须指定的类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值