WEB开发网      婵犻潧鍊婚弲顐︽偟椤栨稓闄勯柦妯侯槸閻庤霉濠婂骸浜剧紒杈ㄥ笚閹峰懘鎮╅崹顐ゆ殸婵炴垶鎸撮崑鎾趁归悩鐑橆棄闁搞劌瀛╃粋宥夘敃閿濆柊锕傛煙鐎涙ê鐏f繝濠冨灴閹啴宕熼鍡╀紘婵炲濮惧Λ鍕叏閳哄懎绀夋繛鎴濈-楠炪垽鎮归崶褍妲婚柛銊ュ缁傚秹鏁撻敓锟� ---闂佹寧娲╅幏锟�
开发学院软件开发Java 通过Java泛型实现数组排序和搜索的通用方法 阅读

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

 2009-10-10 00:00:00 来源:WEB开发网 闂侀潧妫撮幏锟�闂佸憡鍨电换鎰版儍椤掑倵鍋撳☉娆嶄沪缂傚稄鎷�婵犫拃鍛粶闁靛洤娲ㄩ埀顒佺⊕閵囩偟绱為敓锟�闂侀潧妫撮幏锟�  闂佺ǹ绻楀▍鏇㈠极閻愬灚瀚梺鍨儏閳ь剙绉归弻銊р偓闈涙啞閻h京鈧敻鍋婇崰鏍х暦閿燂拷
核心提示:下面讨论的是数组的排序和搜索功能,而一个通用方法则是实现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 实现

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