-1
A
回答
1
這是一種可能性。我並不是將這些積分本身插入到TreeSet
中,而是一個跟蹤它們在PriorityQueue
中的順序的包裝。這有一個好處,我們不需要修改Point
類本身。
這裏的包裝類:
import java.util.PriorityQueue;
import java.util.TreeSet;
public class Sortable<T> implements Comparable<Sortable<T>> {
T element;
int order;
public Sortable(T element, int order) {
this.element = element;
this.order = order;
}
@Override
public int compareTo(Sortable<T> o) {
return order - o.order;
}
}
現在你可以這樣做:
public void transfer(PriorityQueue<PointPair> from, TreeSet<Sortable<Point>> to) {
PointPair pp = from.poll();
int count = 0;
while (pp != null) {
to.add(new Sortable<Point>(pp.getLeftPoint(), count));
count++;
to.add(new Sortable<Point>(pp.getRightPoint(), count));
count++;
pp = from.poll();
}
}
+0
如果你堅持你的問題的措辭,那'TreeSet'應該包含'Point'並且有一個'Comparator':你的'Comparator'可以有它自己的數據結構來跟蹤點的順序,比如'HashMap
相關問題
- 1. 如何保存Vaadin樹容器物品訂單?
- 2. 保存YAML訂單perl
- 3. URLEncodedUtils.parse()是否保存訂單?
- 4. 如何確保訂單保存?
- 5. Java集訂購
- 6. Java按不同參數收集訂單
- 7. Woocommerce保存訂單按鈕不適用於兩個訂單
- 8. Java哈希集和樹集
- 9. Java保證回調訂單執行
- 10. 保存表單集在Django
- 11. 保存JPA列表中的訂單
- 12. Android如何保存比薩訂單?
- 13. 聯繫表7 + WooCommerce - 保存訂單
- 14. Prestashop 1.7無法保存訂單地址
- 15. 如何保存UITabBarController製表訂單
- 16. Magento在保存前生成訂單號
- 17. 在magento會話中保存訂單
- 18. 如何在Magento訂單保存中保存tablerate_bestway送貨方式?
- 19. Bigcartel收集訂單
- 20. 保持收集訂購
- 21. 如何保存可重新訂購列表的新訂單?
- 22. JAVA HashSet的訂單
- 23. Java - 學習訂單
- 24. 在數據庫中保存大型數據集的訂單並將其排序
- 25. 以前是否有任何取消訂單的事件或保存訂單?
- 26. 如何在使用Drupal Commerce保存訂單後獲取訂單ID
- 27. 保持設置訂購訂單Flickr API
- 28. 樹集內集
- 29. Dojo訂單和收集
- 30. 鎖定採集訂單
優先級隊列產生它的順序用同樣的方法,即相同的比較? – Thomas
我不能這樣做,因爲,priorty隊列包含一對代表線條的點,我的比較器使用它。我不能爲單點寫一個比較器。 – 2D3D
如果一個點有多個優先級,即多個對的一部分,該怎麼辦?它是否必須是'TreeSet'或不是'LinkedHashset'更有用? – Thomas