主要使用compareTo方法实现
代码如下:
package GenericStudy.Exa135;
public class GenericComparison {
/**
* 获得泛型数组array中最小的元素(元素必须实现了Compareable接口)
* @param array 泛型数组
* @param <T> 类型变量
* @return 元素
*/
public static <T extends Comparable<T>> 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;
}
public <T extends Comparable> 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;
}
/**
* 泛型排序方法:采用冒泡排序
* @param array
* @param <T>
* @return
*/
public static <T extends Comparable> 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;
}
}
测试方法编写:
package GenericStudy.Exa135;
public class GenericComparisonTest {
public static void main(String[] args) {
String[] books = {
"Java从入门到精通(第2版)", "Java编程宝典", "细说Java", "视频学Java" };
Integer[] nums={
5,4,6,8,6};
System.out.println("麻子新书列表:");
for (String book : books) {
System.out.println(book);
}
String min = GenericComparison.getMin(books);
System.out.println("按名称排序的第一本书:");
System.out.println(min);
String[] result=GenericComparison.sorted(books);
System.out.println("排序后:");
for(String a:result){
System.out.println(a);
}
Integer[] numResult=GenericComparison.sorted(nums);
for(Integer a:numResult){
System.out.println(a);
}
}
}
运行之: