gpt4 book ai didi

Java 使用泛型类型

转载 作者:行者123 更新时间:2023-12-01 17:28:54 26 4
gpt4 key购买 nike

我有一个接受通用类型 T 数组的快速排序我创建了一个 int 数组并尝试使用快速排序,但它不知道如何接受 int 数组。我无法调用 intArray = QuickSort(intArray);在主要方法上。我该怎么做才能使用泛型类型快速排序方法?

public class BasicTraining 
{
public static <T extends Comparable<? super T>> T[] quickSort(T[] array)
{
sort(0, array.length - 1, array);
return array;
}

public static <T extends Comparable<? super T>> void sort(int low, int high, T[] array)
{
if (low >= high) return;
int p = partition(low, high, array);
sort(low, p, array);
sort(p + 1, high, array);
}

private static <T extends Comparable<? super T>> int partition(int low, int high, T[] array)
{
T pivot = array[low];

int i = low - 1;
int j = high + 1;
while (i < j)
{
i++;
while (array[i].compareTo(pivot) < 0)
i++;
j--;
while (array[j].compareTo(pivot) > 0)
j--;
if (i < j)
swap(i, j, array);
}
return j;
}

private static <T extends Comparable<? super T>> void swap(int i, int j, T[] array)
{
T temp = array[i];
array[i] = array[j];
array[j] = temp;
}

public static void main(String[] args)
{
int[] intArray = new int[] {9,3,6,2,1,10,15,4,7,22,8};
for(int i = 0; i < intArray.length; i++)
{
System.out.print(intArray[i] + ", ");
}
// intArray = quickSort(intArray);

}
}

最佳答案

泛型类型是通过类型参数化的泛型类或接口(interface),而 java 不支持原始类型。

使用整数数组而不是原始类型 int。

Integer[] intArray = new Integer[] {9,3,6,2,1,10,15,4,7,22,8};

关于Java 使用泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12891393/

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