admin管理员组文章数量:1516870
请用
关于java中“使用了未经检查或不安全的操作、有关详细信息,请使用 ——Xlint:unchecked重新编译”
今天看《算法 第4版》排序章节时,发现了一个了一个小问题。先贴一下代码:
1 public class Selection{
2 public static void main(String[]args){
3 Integer[]a={3,5,7,3,8,27,679,8,564,23};
4 sort(a);
5 show(a);
6 }
7 public static void sort(Comparable<>[]a){
8 for(int i=0;i<a.length-1;i++){
9 int min=i;
10 for(int j=i+1;j<a.length;j++){
11 if(less(a[j],a[min]))
12 min=j;
13 }
14 exch(a,i,min);
15 }
16 }
17 private static boolean less(Comparable v,Comparable w){
18 return vpareTo(w)<0;
19 }
20 private static void exch(Comparable[]a,int i,int j){
21 Comparable t=a[i];
22 a[i]=a[j];
23 a[j]=t;
24 }
25 private static void show(Comparable[]a){
26 for(int i=0;i<a.length;i++){
27 System.out.print(a[i]+" ");
28 }
29 System.out.println();
30 }
31 }
直接编译会提示:
但是已经生成字节码文件(.class),说明编译通过了,运行后也能得出正确答案。
经过查阅,是没有使用泛型,comparable后面加上<Integer>,但是本题为了保持sort函数的复用性,还是不加比较好。
还有值得注意的一点是,定义数组时不能使用(int,double,string)等,而应该使用(Integer,Double,String),否则向Comparable转化的时候会出错。
本文标签: 请用
版权声明:本文标题:请用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/biancheng/1701291591a372800.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论