java集合框架(泛型)

java集合框架---泛型重点知识:

知识点1.什么事泛型?

泛型<E>:jdk1.5版本出现新特性,用于解决安全问题,是一个安全机制。

   实例

//当在此集合容器中添加了两种类型元素时,此程序编译通过,运行时会报出类型转换异常Exception in thread "main" java.lang.ClassCastException: 

ArrayList  a1=new ArrayList();

//添加泛型之后在编译就会报出错误,不允许添加非String类对象。

ArrayList<String> a1=new ArrayList<String>();
a1.add("java01");
a1.add("java02");
a1.add("java03");
a1.add(5);

Iterator<String> it=a1.iterator();
while(it.hasNext())
{
String s=(String) it.next();
sop(s.length());
}

知识点2:泛型类的定义与用法。

定义:class 类名<E>

实例:class Tool<QQ>{
private QQ q;
public void setObject(QQ q)
{
this.q=q;
}
public QQ getObject()
{
return q;
}
}

用法:当一个工具类调用其他类的对象时,使用泛型,可以限定调用的对象类型,避免产生运行时发生类型转换异常。

实例:

未添加泛型之前:

/*
* 编译正确,运行报错。
* Tool t=new Tool();
t.setObject(new Student());
Worker w=(Worker)t.getObject();

*/

添加泛型之后:

Tool<Worker> t=new Tool<Worker>();

//加上泛型之后,编译时期就出错了。

//t.setObject(new Student());

//添加正确的元素
t.setObject(new Worker());

//使用强制转换

//Worker w=(Worker) t.getObject();

//添加泛型以后,不用强制转换,简化代码

Worker w=t.getObject();

知识点3: 泛型定义在接口上。

定义:interface 接口名<T>

/*实例:
 * interface inter<T>
{
void show(T t);
}
class InterDemo implements inter<String>
{
public void show(String t)
{
System.out.println("show:"+t);
}
}

 * 弊端:接口固定了要操作的类型。

 * 措施:将在实现类上添加泛型,就可以传递任何类型的元素。

class InterDemo<T> implements inter<T>
{
public void show(T t)
{
System.out.println("show:"+t);
}
}

public class GenericDemo5 {
public static void main(String[] args) {
InterDemo i=new InterDemo();
//传递Integer类型。
i.show(6);
//传递String类型。
i.show("dsfsd");
}
}

*/




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值