Ошибка Java несовместимых типов

import java.util.Scanner;
public class Numbers { // -------------------------------------------- // Reads in an array of integers, sorts them, // then prints them in sorted order. // -------------------------------------------- public static void main(String[] args) { int[] intList; int size; Scanner scan = new Scanner(System.in); System.out.print("\nHow many integers do you want to sort? "); size = scan.nextInt(); intList = new int[size]; System.out.println("\nEnter the numbers..."); for (int i = 0; i < size; i++) intList[i] = scan.nextInt(); Sorting.selectionSort(intList); System.out.println("\nYour numbers in sorted order..."); for (int i = 0; i < size; i++) System.out.print(intList[i] + " "); System.out.println(); }
}

//КОД ПЕРВЫЙ.

public class Sorting { // ----------------------------------------------------------------- // Sorts the specified array of objects using the selection // sort algorithm. // -----------------------------------------------------------------
public static void selectionSort(Comparable[] list) { int min; Comparable temp; for (int index = 0; index < list.length - 1; index++) { min = index; for (int scan = index + 1; scan < list.length; scan++) if (list[scan].compareTo(list[min]) < 0) min = scan; // Swap the values temp = list[min]; list[min] = list[index]; list[index] = temp; } }
}

Я не уверен, почему этот код не будет работать. Это может быть просто, но я не уверен. Вот работа программы.

бег:

Сколько целых чисел вы хотите отсортировать? 1

Введите цифры... 12

Исключение в потоке "main" java.lang.RuntimeException: Неподдерживаемый исходный код - Ошибочный тип sym: Сортировка.сегментСорт в Numbers.main(Numbers.java:29) Java Результат: 1

1 ответ

Вы пытаетесь преобразовать int[] в Comparable[]. Обычно для типов ссылок на объекты допускаются расширенные преобразования, но int[] является массивом примитивного типа, поэтому преобразование завершается с ошибкой и генерируется ошибка компилятора.

Попробуйте использовать int[] в качестве параметра selectionSort. Или вы можете использовать Integer[] для типа intList.

licensed under cc by-sa 3.0 with attribution.