簡體   English   中英

是否有Java結構允許.contains查找可序列化對象而無需實際存儲它們?

[英]Is there a Java structure that allows .contains lookups for serializable objects without actually storing them?

我正在尋找某種結構,使我能夠進行contains()-查找,但不會存儲原始值以減少存儲開銷。

用例是過濾大量流中的事件。 我不可能存儲所有遇到的值,但是知道某些事件之前發生很有價值。

Java Set或HashMaps存儲密鑰,從而產生過多的開銷,無法成為海量數據的可行解決方案。

存儲實際值對於進行此類查詢不是必需的。 一個例子是Trie,它可以用來匹配許多不同的字符串,但是所需的存儲空間比組合的單個字符串少得多。

如果你是追求的是一個保證值尚未見過,布隆過濾器可滿足您的需求。

在這種情況下,番石榴有一個實現:

https://github.com/google/guava/wiki/HashingExplained#bloomfilter

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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