在这种情况下是否可以使用Hashtable?

时间:2015-12-07 22:46:52

标签: java heap hashtable priority-queue

所以我有一个单独的最小和最大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;通过修改与我想要修改的歌曲对象相关的歌曲对象,我的歌曲的值。

这是正确的设置方法吗?我以后可以回想一下我的最小堆中的最低值,恢复它的歌曲对象,然后删除对象和我堆中的两个实例吗?

0 个答案:

没有答案