【JAVA】泛型类的概念

泛型类的概念
一个泛型类就是具有一个或多个类型变量的类。
这里使用一个简单的Pair
类作为例子。对于这个类来说,我们只关注泛型,而不会为数据在储的细节烦恼。下面是Pair类的代码:

public class Pair<T>{
public Pair() { 
first = null ; second = null ;
 }
 
public Pair ( T first , T second ) {
this . first = first ; this . second = second ;
 }

public T getFirst ( ) {
 return first ;
 }
 
public T getSecond(){ 
return second;
 }
 
public void setFirst(T newValue){ 
first = newvalue;
 }
 
public void setSecond ( T newvalue ) { 
second = newvalue ;
 }

private T first;
private T second;
}

Pair类引入了一个类型变量T,用尖括号(<>)括起来,并放在类名的后面。泛型类可以有多个类型变量。例如,可以定义Pair类,其中第一个域和第二个域使用不同的类型:

public class Pair<T,U>{…}

类定义中的类型变量指定方法的返回类型以及域和局部变量的类型。例如,

private T first ; // 使用类型变量

注释:类型变量使用大写形式,且比较短,这是很常见的。在Java库中,使用变量E表示集合的元素类型,K和V分别表示表的关键字与值的类型。T(需要时还可以用临近的字母U和S)表示“任意类型”。

用具体的类型替换类型变量就可以实例化泛型类型,例如:

Pair

可以将结果想像成带有构造器的普通类:

Pair()
Pair ( String , String )

和方法:

String getFirst()
String getSecond()
void setFirst ( String )
void setSecond(String)

换句话说,泛型类可看做普通类的工厂。

上面示例中的程序使用了Pair类。静态的minmax方法遍历了数组并同时计算出最小值和最大值。它用一个Pair对象返回了两个结果。回想一下compareTo方法比较两个字符串,如果字符串相同则返回0;如果按照字典顺序,第一个字符串比第二个字符串靠前,就返回负值,否则,返回正值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-_星耀_-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值