我想将一些对象推入 TreeSet(在 BigHeap 类中),但我遇到了问题:
这是我的主要课程:
# --------- Print 3 -----------
Logger.info("items.size() = " + items.size());
for (Item item : items) {
Long score = item.getScoreByQueryItems(queryItems);
Long itemId = item.id;
ItemCacheNode node = new ItemCacheNode(itemId,score);
bigHeap.push(node); <----- here is the push action ---------
# --------------Print three times------------
Logger.info("node.itemId = " + node.getItemId());
}
# ---------------Print 1----------
Logger.info("bigHeap.getTreeSet().size() = " + bigHeap.getTreeSet().size());
这是我的 BigHeap.java:
public class BigHeap<T> {
private TreeSet<T> treeSet;
public BigHeap(Comparator<T> comparator){
this.treeSet = new TreeSet<T>(comparator);
}
public void push(T o){
treeSet.add(o);
}
public TreeSet<T> getTreeSet(){
return this.treeSet;
}
}
问题是,为什么 bigHeap 推送了 3 次(不同的对象)但毕竟只持有一个对象。