[英]Java data structure for replacing two maps Map<A,B>, Map<B,C> linked via B value
我有一個簡單的Java緩存系統,該系統將帶有時間戳記( Long
)的對象id( Integer
)映射到時間戳( Long
),后者映射到List<Object>
。 我用兩種地圖來映射這種情況:
Map<Integer, Long> objectTimestamps = ...
Map<Long, List<Object>> timestampToList = .... //I know, Here I can use something like a Guava's MultiMap, but it is not really important at this point
我研究了諸如Guava之類的庫中的許多館藏,但是在這種情況下我沒有發現要使用的任何特定數據結構。 您可以提出另一種保存此數據的方法嗎? 請考慮我在我的算法中連續讀取/插入此值。
PS:在我的示例中,我將時間戳映射到Object
實例列表,但是有時我將時間戳映射到一個簡單的Object
。
我只會做:
public class TimestampObjects {
private long timestamp;
private List<Object> objects;
// + constructors, getters, setters
}
映射將變為: Map<Integer, TimestampObjects>
您可以使用Apache Pair 。
映射將為: Map<Integer, Pair<Long, List<Object>>
。
要在地圖中添加內容,只需執行以下操作:
map.put(integerValue, Pair.of(longValue, objectList));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.