所以我有一个单独的最小和最大PriorityQueues,需要一种方法来协调它们。我有一些歌曲对象,每个对象都有3个整数。有没有办法协调"堆"在使用哈希表的优先级队列中?例如,这是我的歌曲构造函数
public Song(int name, int N, int L) {
this.name = name;
. . .
}
稍后,当我插入PriorityQueues时,我想将min和max队列中的值与由p定义的值p相关联。
P = N+2L
例如,在创建和添加值时,我会说
public SongCollection() {
max = new PriorityQueue<Integer>(500, Collections.reverseOrder());
min = new PriorityQueue<Integer>(500);
hash = new Hashtable<Song,Integer>();
}
addSong(int date) {
Song song = new Song(date, 20, 20);
hash.put(song, song.getP());
max.add(song.getP());
min.add(song.getP());
}
稍后,我想更新&#34; N&#34;和&#34; L&#34;通过修改与我想要修改的歌曲对象相关的歌曲对象,我的歌曲的值。
这是正确的设置方法吗?我以后可以回想一下我的最小堆中的最低值,恢复它的歌曲对象,然后删除对象和我堆中的两个实例吗?