gpt4 book ai didi

java - Java 中的 Comparable[] 是什么?

转载 作者:行者123 更新时间:2023-11-29 04:38:43 24 4
gpt4 key购买 nike

我发现了一段代码,其中 Comparable[] 写在数组名称 a 之前。我不明白什么是 Comparable[] a 以及为什么 Comparable[] 需要在数组名称 a 之前声明。

public static void merge(Comparable[] a, int lo, int mid, int hi)
{
// Merge a[lo..mid] with a[mid+1..hi].
int i = lo, j = mid+1;
for (int k = lo; k <= hi; k++) // Copy a[lo..hi] to aux[lo..hi].
aux[k] = a[k];
for (int k = lo; k <= hi; k++) // Merge back to a[lo..hi].
if (i > mid) a[k] = aux[j++];
else if (j > hi ) a[k] = aux[i++];
else if (less(aux[j], aux[i])) a[k] = aux[j++];
else a[k] = aux[i++];
}

最佳答案

在 java 中,类型声明在变量名之前。例如。 String b 表示bString 类的一个实例。 Java 是一种静态的强类型语言。

所以 Comparable[] a 表示 a 是某个实现了 Comparable 接口(interface)的类的实例数组。这意味着数组的每个元素要么是 null 要么是什么,具有 compareTo 方法。查看 less 方法实现,您可能会在那里找到 compareTo 调用。

几个标准类实现可比较的例子:

  • 整数,所以 new Integer[] {1, 2, 3, 4, 5} 可以作为第一个参数传递给这个函数
  • Double,所以 new Double[] {1.5, 1.6, 1.8} 可以作为第一个参数传递
  • 字符串,所以 new String[] {"a", "b", "c"} 可以作为第一个参数传递

总的来说,这种构造允许让相同的代码段处理不同的类型,这些类型遵循相似的接口(interface)(这意味着您不必为您拥有的每个新类编写相同的代码)。您可以创建一些实现 Comparable 的类并为此重用此代码。

另见 Comparable JavaDoc .

关于java - Java 中的 Comparable[] 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40160839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com