假設我有一張表示室內地圖的圖像。在這張地圖上,某些區域是「允許的」,其他的則不是。然後我會定期獲得一組座標(x,y)
,並且需要檢查它們是否在「允許」區域中。代表室內地圖的數據結構
目前,我用boolean[][] map
變量表示此地圖,其中true
表示允許。要檢查,我只是檢查值map[x][y]
但是,我代表的圖像可能會變得相當大,比方說最大5000x5000像素。因此,我的map
變量在內存中變得過大(在這種情況下,假設boolean
需要大約1個字節,則爲25MB)
是否有更好的數據結構,用於解決我的問題?我現在想了一會兒,但看不到任何需要更少空間的東西。
在此先感謝!
我喜歡你的想法,唯一的缺點是增加了構建這些Rect對象的複雜性。數據來自包含0和1行的csv文件。我想我可以使用遞歸算法來構建這些Rects ...,但不是微不足道! – chopchop
我明白了。但是你知道 - 如果數據是以一種很難處理的格式發佈的,那麼我懷疑你沒有其他選擇。我個人會使用'Rect' /多邊形方法,因爲大多數平面地圖可以用它們來表示。考慮到節省的內存量,算法會得到回報。請記住 - Android設備具有16/24/32MB內存限制/進程! – andr
好,非常感謝,猜測我要咬緊牙關,寫出算法來生成poylgons。 – chopchop