1.首先定义一个泛型接口
此接口用于对数组类型对象进行操作,我们先定义三个方法,分别是:
1)获得数组的最大值
2)获得数组的最小值
3)对数组进行排序
package GenericStudy.Exa136;
public interface Maximum<T extends Comparable<T>> {
/**
* 获得数组最大值
* @param array
* @return
*/
T getMax(T[] array);
/**
* 获得数组最小值
* @param array
* @return
*/
T getMin(T[] array);
/**
* 对数组进行排序
* @param array
* @return
*/
T[] sorted(T[] array);
}
2.然后,编写泛型接口的一个实现类
实现类会实现接口中的方法,赋予接口具体的功能。
package GenericStudy.Exa136;
public class GenericComparison<T extends Comparable<T>> implements Maximum<T> {
@Override
public T getMax(T[] array) {
if (array == null || array.length == 0) {
return null;
}
T max = array[0];
for (int i = 1; i < array.length; i++) {
if (max.compareTo(array[i]) < 0) {
max = array[i];
}
}
return max;
}
@Override
public T getMin(T[] array) {
if (array == null || array.length == 0) {
return null;
}
T min = array[0];
for (int i = 1; i < array.length; i++) {
if (min.compareTo(array[i]) > 0) {
min = array[i];
}
}
return min;
}
@Override
public T[] sorted(T[] array) {
if (array == null || array.length == 0) {
return null;
}
for (int i = 0; i < array.length; i++) {
for(int j=0;j<array.length;j++){
if(array[i].compareTo(array[j])<0){
T temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
return array;
}
}
3.最后编写测试方法进行测试
package GenericStudy.Exa136;
public class GenericComparisonTest {
public static void main(String[] args) {
String[] books = {
"Java从入门到精通(第2版)", "Java编程宝典", "细说Java", "视频学Java" };
System.out.println("麻子科技新书列表:");
for (String book : books) {
System.out.println(book);
}
GenericComparison<String> gc = new GenericComparison<String>();
System.out.println("按名称排序第一本书:");
String min=gc.getMin(books);
System.out.println(min);
String max = gc.getMax(books);
System.out.println("按名称排序最后一本书:");
System.out.println(max);
String[] result1=gc.sorted(books);
for(String a:result1){
System.out.println(a);
}
}
}
运行之
成功!!