Я создал приоритетную очередь, в которой хранятся песни с некоторыми атрибутами (идентификатор, заголовок, лайки).Я хочу напечатать кучу, элемент за элементом в формате, подобном этому примеру:
5 ZZ TOP - La Grange 4167
вместо этого он печатает это:
[null, Song@330bedb4, Song@2503dbd3, Song@4b67cf4d, Song@7ea987ac... ]
Это мой код:
public class PriorityQueue<T> {
private T[] heap;
private int size;
protected Comparator<T> cmp;
public PriorityQueue(int capacity, Comparator<T> cmp){
if(capacity < 1) throw new IllegalArgumentException();
this.heap = (T[]) new Object[capacity + 1];
this.size = 0;
this.cmp = cmp;
}
public void print(T[] heap) {
for (int i=1; i<=size; i++){
System.out.print(heap[i]);
}
System.out.println();
}
public void insert ( T ob){
if(ob == null) throw new IllegalArgumentException();
if(size == heap.length - 1)throw new IllegalArgumentException();
heap[++size] = ob;
swim(size);
}
}
где-то у меня на главной: (я помещаю значения в эти переменные)
Song s = new Song(id, title, likes);
System.out.println(s.getId() + " " + s.getLikes() + " " + s.getTitle());
pq.insert(s);
pq.print();