Как создать класс сортировки кучи без определенного типа?

вот программа, которую меня просят сделать. Я уже сделал это с определенным типом (int), но делать это с типом объекта довольно сложно.

public class HeapSort
{ 
    private Object[] data;
    private int partition;

    HeapSort(Object[] data);  // Class Constructor
    HeapSort(int size);       // Class Constructor

    public Object[] sort()           // Sorts the data
    public void insert(Object item); // Insert in Heap
    public Object extractMin();    // Remove from Heap

    private void bubbleUp()
    private void bubbleDown()
}

person Mastercode_duv    schedule 06.11.2018    source источник
comment
Возможный дубликат создания экземпляра универсального класса в Java   -  person MWB    schedule 06.11.2018
comment
Этот учебник по универсальным шаблонам поможет вам понять, как создать универсальный HeapSort   -  person LuCio    schedule 06.11.2018


Ответы (1)


Вам нужно использовать дженерики в Java для написания независимых от типов программ. Массивы и дженерики не очень хорошо работают вместе. Поэтому вместо голого массива вы можете рассмотреть возможность использования ArrayList с универсальным типом. ArrayList — это только внутренний массив, который обладает интеллектом для выделения нового массива большего размера и копирования всего из исходного массива в новый массив, когда в исходном массиве заканчивается место. Хотя он абстрагирует все эти сложности от программиста, он требует затрат. Поэтому при использовании ArrayList с дженериками для создания программы сортировки кучи убедитесь, что вы используете метод ensureCapacity или соответствующий конструктор для указания ожидаемого размера массива. Наконец, для сравнения общих объектов вам необходимо передать соответствующую реализацию Comparator.

person Saptarshi Basu    schedule 06.11.2018
comment
Я это понимаю, но в этом классе мы еще даже не рассмотрели это. нет ли другого способа использовать объект из метода класса без оператора типа? :: - person Mastercode_duv; 07.11.2018