簡體   English   中英

Java:如何有效地存儲稀疏數據

[英]Java: how to store sparse data efficiently

我有超過10億個項目,大約有1000列(矩陣)。 但是對於95%列的唯一值比率小於百分比,因此該數據可以歸類為稀疏數據

什么是用於在Java中存儲此類數據的高效且生產的解決方案?

不確定你是否已經考慮過這一點。 如果你確實有數十億行,即使你找到了一種有效存儲稀疏矩陣的機制,你也可能無論如何都要在內存中保存那么多數據。

但是,您可以使用一個簡單的映射,其鍵是一個Pair ,用於保存基准的行和列。

public class Pair<P, Q> {

    public final P p;
    public final Q q;

    public Pair(P p, Q q) {
        this.p = p;
        this.q = q;
    }

    // TODO: Implement equals and hashCode.
}

class Datum {
}
// My sparse database.
Map<Pair<Integer, Integer>, Datum> data = new HashMap<>();

這將使用接近最小的存儲空間,但不一定能解決您的問題。

好吧,我認為HashTable這樣做的最佳選擇...... key-value對對於相同的value是有效的,即多個value的一個key

暫無
暫無

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

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