簡體   English   中英

用於替換兩個地圖Map的Java數據結構 <A,B> 地圖 <B,C> 通過B值鏈接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM