WEB开发网
开发学院软件开发Java 通过Java泛型实现数组排序和搜索的通用方法 阅读

通过Java泛型实现数组排序和搜索的通用方法

 2009-10-10 00:00:00 来源:WEB开发网   
核心提示:下面讨论的是数组的排序和搜索功能,而一个通用方法则是实现Comparable接口的方法,通过Java泛型实现数组排序和搜索的通用方法,这个方法需要通过java泛型来实现,下面便逐步讲解为何,而且第二个顺序搜索可以使用到float,double,以及如何通过Java泛型实现此类的通用方法,如何在java类中一些通用方法

下面讨论的是数组的排序和搜索功能,而一个通用方法则是实现Comparable接口的方法,这个方法需要通过java泛型来实现。下面便逐步讲解为何,以及如何通过Java泛型实现此类的通用方法。

如何在java类中一些通用方法, 特别是一些静态的工具方法?

比如,数组Arrays的sort、search等?

1. 整数数组的顺序收缩

public static int seqSearch(int[] arr, int first, int last, int target) {    
    for (int i = first; i < last; i++)    
        if (arr[i] == target)    
            return i;    
    
    return -1;    
}    

1.1对上面的方法进行抽象,最先让我们想到就是,使用java的Object的引用,来实现通用方法

public static int seqSearch(Object[] arr, int first, int last, Object target) {    
    for (int i = first; i < last; i++)    
        if (arr[i].equals(target))    
            return i;    
    
    return -1;    
}    

2.1这样看来好像Object的引用好像非常方便,而且第二个顺序搜索可以使用到float,double,String等等。如果我们要进一步研究就会出现问题

public static void selectionSort(int[] arr) {    
    int n = arr.length, smallIndex = 0;    
    for (int i = 0; i < n; i++) { // 遍历array数组    
        smallIndex = i;    
        for (int j = i + 1; j < n; j++)    
            if (arr[smallIndex] > arr[j]) // 选择最小的索引j    
                smallIndex = j;    
        // if (smallIndex != i) {    
        exchange(arr, i, smallIndex);// 交换array[i]与 min(array[i+1,..,n])    
        // }    
    }    
}    

1 2  下一页

Tags:通过 Java 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接