這是情況。很長的名單和搜索最近的元素
我有一個包含一些對象:
- 起始
long
- 結束
long
- 一個
string
代碼
這些對象longs
是連續的。 例如:
var obj1 = new {From = 0, To = 16777215, Code = "aaa"};
var obj2 = new {From = 16777216, To = 16777471, Code = "bbb"};
有這樣幾乎150.000對象。
目前我將所有內容都存儲在SQL表中。
問題是我需要從這個列表中搜索。例如,我需要查找編號爲16777470的對象,該對象將是對象2「bbb」。
問題:有沒有一種有效的方式來存儲這麼多的對象在內存中,並能夠尋找其中的元素,擁有很長的時間並尋找最接近的元素?
在排序列表上,二進制搜索可以工作。 – Eser
即使對象平均爲50個字節,總共也少於8MB:將適合許多當代CPU的緩存。 IE瀏覽器。不是很大。 – Richard
它在內存上需要有必要嗎?因爲在SQL上有效的方法。 – JuanK