3.用泛型编写排序方法(适用于所有实现Comparable的类)

主要使用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);
        }
    }
}

运行之:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/c1776167012/article/details/121662051