Java泛型与算法分析知识详解
1. Java泛型基础
在Java编程中,泛型是一项强大的特性。比如下面这个用于寻找数组中最大元素的泛型静态方法:
public static <AnyType extends Comparable<? super AnyType>>
AnyType findMax( AnyType [ ] arr )
{
int maxIndex = 0;
for( int i = 1; i < arr.length; i++ )
if( arr[ i ].compareTo( arr[ maxIndex ] ) > 0 )
maxIndex = i;
return arr[ maxIndex ];
}
这个方法利用了类型边界来确保传入的类型具有可比性。类型边界指定在尖括号 <> 内,规定了参数类型必须具备的属性。
在尝试定义泛型方法签名时,有几种不同的写法。一种简单的尝试是 public static <AnyType extends Comparable> ... ,但 Comparable 接口现在是泛型的,这种写法并不合适。更好的写法是 public static <AnyType extends Comparable<AnyType>> ... ,然而这仍然存在问题。例如,假设 S
超级会员免费看
订阅专栏 解锁全文


被折叠的 条评论
为什么被折叠?



