Comparable[] 排序的问题

发布于 2022-09-01 22:55:56 字数 320 浏览 13 评论 0

程序的结构大致如下

class   A {

sort(**Comparable[]  x**){
    //此处进行插入排序等
}

。。。main(String[] args)
{
    String[] arr={......}   //一个字符串数组
    A a=new A();
    a.sort(**arr**);
}
}

1.sort(...)方法需要的参数是一个Comparable数组,而arr是一个字符串数组,为什么可以直接传入arr那?
2.x[i]和a[i]表示同一个元素,为什么那?
3.这样写有什么好处那?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一影成城 2022-09-08 22:55:56

String实现了Comparable接口,所以每一个String对象均可以看作Comparable对象
你可以看String源码

public final class String implements java.io.Serializable, Comparable<String>, CharSequence 
 {
public int compareTo(String anotherString) 
   {
    int len1 = value.length;
    int len2 = anotherString.value.length;
    int lim = Math.min(len1, len2);
    char v1[] = value;
    char v2[] = anotherString.value;

    int k = 0;
    while (k < lim)
     {
        char c1 = v1[k];
        char c2 = v2[k];
        if (c1 != c2) 
        {
            return c1 - c2;
        }
        k++;
     }
    return len1 - len2;
  }
}

这个是为了实现多态,举个例子,A extends B,那么子类A的任何对象都可以看作是B的对象;
同理,A implements B,B是一个接口,A的任何对象均可以看作是B的对象。
这么写的好处就是:很多方法不需要再重载。你不需要为每个类都写一个sort方法,只要写一个sort就行了。其他很多方法也不再需要重载。

夏了南城 2022-09-08 22:55:56

1.String实现了Comparable接口,就可以认为是Comparable类型
2 3问题没看懂。。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文