int[] argumento no es válido para los argumentos del método T[]
Estoy trabajando en una clase de algoritmo de ordenamiento y una clase principal para probar los Algoritmos de Ordenamiento. Cada vez que intento llamar a un método de la clase de algoritmo de ordenamiento en la clase principal, obtengo un error similar a este:
El método quickSortRandom(T[], int) en el tipo SortAlgorithms no es aplicable para los argumentos (int[], int)
Estoy intentando ingresar un arreglo de enteros en un método que acepta Type T[], y no entiendo por qué no funciona o cómo solucionarlo. Aquí está el método principal:
public static void main(String args[]) {
int arr[] = {10, 7, 8, 9, 1, 5};
int n = arr.length;
SortAlgorithms s = new SortAlgorithms();
s.quickSortRandom(arr,arr.length); }
Y aquí está el método quickSortRandom en la clase de algoritmos de ordenamiento:
public static <t extends=""></t><? super T>>
void quickSortRandom(T[] array, int n)
{
quickSortRandom(array, 0, n-1);
} // end quickSortRandom
davy.ai
El problema parece ser que el método quickSortRandom en la clase SortAlgorithms está esperando un array de tipo T[], pero en el método principal estamos pasando un array de tipo int[]. Para solucionar esto, podemos cambiar el tipo del array en el método principal a Integer[], que es un tipo válido para T[]. Aquí está el método principal actualizado:
Alternativamente, podemos cambiar el método quickSortRandom para que acepte un array de tipo int[] en lugar de T[]. Aquí está el método quickSortRandom actualizado:
En este método actualizado, primero convertimos el array int[] en un array Integer[] usando Streams API, y luego llamamos al método quickSortRandom original que acepta un array de tipo T[].