我正在製作一個簡單的2D java sidescroller,現在,我有一個HashMap
,其中我有一個類Location
作爲鍵,Entity
作爲值。我希望能夠將Entity
對象存儲在TreeMap
(或類似的地方)中,其中我將有2個密鑰:double x
和double y
。並能夠獲得所有值,其中第一個鍵在特定數字之間,第二個鍵也是如此。到目前爲止,我只發現TreeMap
,但它只允許我有1雙作爲關鍵。有沒有一種方法可以在Java中實現,而不必遍歷每個密鑰(如Location
)並檢查其中的2個數字是否在指定範圍內?有兩個鍵的TreeMap
1
A
回答
2
雖然它不美觀 - 一種方法是使用TreeMap<Double, TreeMap<Double, Entity>>
。然後得到一個正方形內的所有實體,你可以做map.subMap(minX, maxX).subMap(minY, maxY).values();
2
我會用2個樹狀圖,一個用於x和一個Y:
NavigableMap<Double, Object> x = new TreeMap<>();
NavigableMap<Double, Object> y = new TreeMap<>();
Object obj1 = new Object();
x.put(2.0, obj1);
y.put(10.0, obj1);
// find objects with x between 1 and 3; y between 9 and 11
Collection<Object> c1 = x.subMap(1.0, true, 3.0, true).values();
Collection<Object> c2 = y.subMap(9.0, true, 11.0, true).values();
c1.retainAll(c2);
現在C1中包含的結果
相關問題
- 1. 沒有唯一鍵的TreeMap
- 2. 比較兩個TreeMap中
- 3. 帶有通用鍵類型的TreeMap
- 4. 帶可變鍵的Java TreeMap
- 5. 以類爲關鍵的TreeMap
- 6. TreeMap中的重複鍵
- 7. 轉換陣列具有兩個類型的HashMap,TreeMap中,LinkedHashMap的
- 8. 連接兩個表有兩個外鍵
- 9. 的Java TreeMap的返回鍵位置
- 10. 如何遍歷一個TreeMap直到一個特定的鍵?
- 11. TreeMap迭代不給我排序的鍵
- 12. TreeMap的鍵值爲字符串數組
- 13. 有兩個關鍵字
- 14. has_one有兩個外鍵?
- 15. 迭代超過兩TreeMap的在Java中
- 16. 創建具有兩個強制性鍵,其中一個有兩個可選鍵
- 17. Java TreeMap:從單個鍵檢索多個值
- 18. 爪哇 - 保持2個鍵一個值(TreeMap中)
- 19. TreeMap的
- 20. 具有主鍵的兩列而不是具有一個主鍵的兩列
- 21. Django的 - 有兩個以上的外鍵
- 22. 可以使用TreeMap檢索給定鍵值以上的所有鍵/值對嗎?
- 23. 排序一個TreeMap的java
- 24. 將Treemap鍵和值轉換爲數組
- 25. 如何使用遞減鍵排序TreeMap?
- 26. 合併兩個數組列表到一個TreeMap在java中
- 27. 內部連接兩個表,都有沒有主鍵的外鍵?
- 28. 有ActiveRecord的兩個外鍵? [rails]
- 29. 有兩個外鍵的用戶?
- 30. 具有兩個鍵值的映射