在Objective-C Cocoa中,我們有NSIndexSet
類,它通過保存一系列範圍來有效地存儲一系列唯一索引。例如。組1,2,... 30,57將被存儲爲範圍1-30和57而不是32個數字的數組。這有助於以簡單和快速的方式存儲大量選擇。例如,如果選中一個表中的所有行在1到100萬之間,那麼索引集摺疊到一個很小的範圍,並且可以快速地進行比較和相交。是否有Java的IndexSet和Range類?
不幸的是,這對Google來說相當困難。是否有一個Java的等價類?
在Objective-C Cocoa中,我們有NSIndexSet
類,它通過保存一系列範圍來有效地存儲一系列唯一索引。例如。組1,2,... 30,57將被存儲爲範圍1-30和57而不是32個數字的數組。這有助於以簡單和快速的方式存儲大量選擇。例如,如果選中一個表中的所有行在1到100萬之間,那麼索引集摺疊到一個很小的範圍,並且可以快速地進行比較和相交。是否有Java的IndexSet和Range類?
不幸的是,這對Google來說相當困難。是否有一個Java的等價類?
這似乎是一個有用的課,我不記得一個標準執行。
這裏有一些 - 或許有用的指針。
A range intersection algorithm better than O(n)?
http://www.codeproject.com/KB/recipes/rangeset.aspx
http://pcj.sourceforge.net/docs/api/bak/pcj/set/IntRangeSet.html
Data structure to build and lookup set of integer ranges
Representing sparse integer sets?
http://www.iis.uni-stuttgart.de/intset/doc/intset/TreeIntegerSet.html
PCJ的IntRangeSet似乎適合法案。謝謝! – 2011-01-10 21:17:37
當然不是最後一個,也是最重要的,在番石榴圖書館裏有一個Range class。這article做了很好的說明你如何使用它。
檢出BitSet類。你在這裏表達的並不是exacly Range,但它可能對你有用。 – 2011-01-10 15:17:10